我需要检查一个元素是否包含使用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