如果变量的子项包含一个类,则为Jquery boolean

时间:2013-07-20 07:15:27

标签: jquery

http://jsfiddle.net/yrJPE/2/

这有效:

if (thediv.find('.theclass1').length) {
     alert('id1 has class1');   
}

这不起作用:

if (thediv.hasClass('theclass1')) {
     alert('id1 has class1...');   
}

我正在寻找简洁和/或高效的东西......

BTW我实际上使用的是$(this)而不是thediv ...

3 个答案:

答案 0 :(得分:2)

两个ifs检查不同的东西!

第一个检查div是否包含与选择器.class1

匹配的元素

第二个检查dd是否具有类class1。

根据你真正需要检查的内容,你应该选择正确的,这已经很简洁了。

答案 1 :(得分:2)

如果简洁是你的目标,那么以下工作,虽然在内部,jQuery将其转换回原始版本中的形式:

if ($('.theclass1',  this).length) {
    alert('id1 has class1');   
}

这会在theclass1this的上下文中查找班级$(this)的所有元素。

答案 2 :(得分:1)

如果您希望第二个代码有效,请将其替换为:

if (thediv.find().hasClass('theclass1')) {
     alert('id1 has class1...');   
}