我需要檢查一個元素是否包含使用JQUERY的某個子類。如何查找元素是否包含特定的類?
我想:
if ($('#myElement').has('.myClass')) {
do work son
}
沒有工作。
我的HTML代碼佈局是這樣的:
<div id="myElement">
<img>
<span>something</span>
<span class="myClass">Hello</span>
</div>
我需要檢查一個元素是否包含使用JQUERY的某個子類。如何查找元素是否包含特定的類?
我想:
if ($('#myElement').has('.myClass')) {
do work son
}
沒有工作。
我的HTML代碼佈局是這樣的:
<div id="myElement">
<img>
<span>something</span>
<span class="myClass">Hello</span>
</div>
最簡單的方法是尋找.myClass
爲#myElement
孩子:
if($('#myElement .myClass')).length > 0)
如果你只是想先平兒,你會用>
if($('#myElement > .myClass')).length > 0)
另一種方式是選擇傳遞給find
和檢查的結果:
if($('#myElement').find('.myClass').length > 0)
或者只有第一級子:
if($('#myElement').children('.myClass').length > 0)
只需使用QS
var hasClass = document.getElementById("myElement").querySelector(".myClass");
或者你可以緩解兒童
var element = document.getElementById("myElement");
var hasClass = recursivelyWalk(element.childNodes, function hasClass(node) {
return node.classList.contains("myClass");
});
function recursivelyWalk(nodes, cb) {
for (var i = 0, len = nodes.length; i < len; i++) {
var node = nodes[i];
var ret = cb(node);
if (ret) {
return ret;
}
if (node.childNodes && node.childNodes.length) {
var ret = recursivelyWalk(node.childNodes, cb);
if (ret) {
return ret;
}
}
}
}
使用recursivelyWalk
和.classList
(它可以被微調)。
另外,您可以使用jQuery
$("#myElement .myClass").hasClass("myClass");
,或者如果你想不jQuery的複合操作,那麼嘗試NodeComposite
NodeComposite.$("#myElement *").classList.contains("myClass");
嘗試:
if($('#myElement').children('.myClass').length) {
// Do what you need to
}
jQuery對象返回一個數組,其中包含.length
屬性。上述代碼檢查#myElement
中是否有.myClass
子女,如果有(.length
不爲0),則執行if()
語句中的代碼。
這裏有一個更明確的版本:
if($('#myElement').children('.myClass').length > 0) {
// Do what you need to
}
你總是可以使用$('#myElement .myClass').length
過,但$.children()
更清晰一些。要找到不是的孩子,請指定孩子,請使用$.find()
代替$.children()
。
這很好,謝謝。 – 2012-01-15 01:35:38
if($.contains($('#myElement'), $('.myClass'))){
alert("True");
}
else{alert("False")};
使用'$('#myElement')。children('。myClass').length'更清晰,意義更明顯,也更簡單,可能更快。 – Bojangles 2012-01-15 01:30:17
'的document.getElementById( 「myElement」)getElementsByClassName方法( 「MyClass的」)length' – Raynos 2012-01-15 01:34:14
@Raynos:。哈哈...太多的JavaScript。 :P – naveen 2012-01-15 09:17:09