Каким будет лучший способ получить все div, у которых есть класс, начинающийся с input
? Другими словами, a
и b
должны быть возвращены из приведенного ниже, но не c
.
<div id="a" class="input1 foo"></div>
<div id="b" class="foo input2"></div>
<div id="c" class="xinput3 foo"></div>
Допустимый способ, который неожиданно был принят здесь, состоит в том, чтобы сделать $("div[class^='input']");
, но, конечно, это пропустит b
. И, конечно, $("div[class*='input']");
даст ложное положительное значение на c
.
Лучшее, что я мог придумать, было это чудовище
function getAllInputDivs() {
return $("div").filter(function (i, currentDiv) {
return $.grep($(currentDiv).attr("class").split(" "), function (val) {
return val.substr(0, "input".length) === "input";
}).length > 0;
});
}
Есть ли более чистый способ? Здесь рабочая скрипка выше