jQuery - имеет класс, который начинается с

Каков наилучший способ получить все 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;
    });
}

Есть ли более чистый способ? Вот рабочий фиддл вышеописанного

12
задан Community 23 May 2017 в 12:01
поделиться