0

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

这有效:

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

这不起作用:

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

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

顺便说一句,我实际上使用的是 $(this) 而不是 thediv ...

4

3 回答 3

2

两个 if 检查不同的东西!

第一个检查 thediv 是否包含与选择器 .class1 匹配的元素

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

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

于 2013-07-20T07:19:02.793 回答
2

如果简洁是您的目标,那么尽管在内部,jQuery 将其转换回您在原始版本中的形式,但以下工作有效:

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

这会在或theclass1的上下文中查找类的所有元素。this$(this)

于 2013-07-20T08:35:37.803 回答
1

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

if (thediv.find().hasClass('theclass1')) {
     alert('id1 has class1...');   
}
于 2013-07-20T07:21:33.730 回答