開頭的課程獲得所有具有以input
開頭的課程的所有div的最佳方式是什麼?換句話說,a
和b
應該從下面的內容中返回,但不是c
。jQuery - 擁有以
<div id="a" class="input1 foo"></div>
<div id="b" class="foo input2"></div>
<div id="c" class="xinput3 foo"></div>
的表面的方法,其令人驚訝地被接受here,是做$("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;
});
}
有一個更清潔的方式最好?下面是上述
我不認爲類名是類似input1和input2的最佳選擇。如果輸入的唯一性足以以這種方式枚舉,則可以使用ID或名稱,可以使用'$(「[id^= input]」)' – 2011-12-20 17:14:26
@KevinB - 您可能是對的。我不確定這是否有很好的用例。現在這只是一個理論問題,看看是否可以完成。 – 2011-12-20 17:19:33
相似的問題:[jQuery的選擇器目標任何類名稱(的多個存在)以前綴開頭?](http://stackoverflow.com/questions/4524412/jquery-selector-to-target-any-css-name- ),但我沒有自定義選擇器表達式,所以我很喜歡這個問題的答案:) – BoltClock 2011-12-20 17:41:33