Каков наилучший способ получить все div, которые имеют любой класс, начинающийся с input
? Другими словами, a
и b
должны быть возвращены из того, что ниже, но не c
.
Предполагаемый способ, который, к удивлению, был принят здесь, заключается в том, чтобы сделать $("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;
});
}
Есть ли более чистый способ? Вот рабочий фиддл вышеописанного