使用jQuery确定div的子级是否具有css类

使用jQuery确定div的子级是否具有css类,jquery,css,jquery-selectors,Jquery,Css,Jquery Selectors,在我的一个网页上,我正在检查css类是否未被使用,如下所示: if (!$('*').hasClass("my-special-class")) { 上面的方法可以工作,但它会检查页面上的每个元素。事实上,我只需要在一个特定的div(id='mydiv')及其子元素中进行检查,但我不太确定要使用哪种类型的选择器,并欢迎您提出建议 $('#myID').find(".my-special-class").length 如果父div中没有包含该类的元素,它将返回0 if ( $('#yourID

在我的一个网页上,我正在检查css类是否未被使用,如下所示:

if (!$('*').hasClass("my-special-class")) {
上面的方法可以工作,但它会检查页面上的每个元素。事实上,我只需要在一个特定的
div
(id='mydiv')及其子元素中进行检查,但我不太确定要使用哪种类型的选择器,并欢迎您提出建议

$('#myID').find(".my-special-class").length
如果父div中没有包含该类的元素,它将返回0

if ( $('#yourIDorClass').children().length > 0 ) {
     // do something
}

这应该行得通。函数的作用是:返回一个包含子对象的JQuery对象。因此,您只需检查大小并查看它是否至少有一个子项。

您只需使用选择器本身在
if
语句中进行比较

if($('.my-special-class').length > 0){
    //element with this class exists - do something
}
这将在DOM中搜索具有类
my special class
的任何元素。如果找不到该元素,则长度返回为0

或者,如果希望在某个元素中找到选择器,可以修改它-

if($('#myDiv .my-special-class').length > 0){
    //element exists in #myDiv - do something
}

此选择器的工作方式与任何CSS选择器的工作方式相同,
myDiv
的任何子类以及类
myspecial class
都将被选中

您必须这样使用

$('#mydiv *').hasClass("my-special-class")

如果mydiv的任何子元素正在使用该类,则返回true;如果未使用,则返回false。

它检查HTML页面上该类的所有内容的原因是因为您在jQuery选择器中使用了
'*'

如果您想使用jQuery以特定div为目标,只需将代码更改为:

if (!$('#myDiv').hasClass("my-special-class")) {
  ...
}

应该做这项工作:-)

它只会检查myDiv是否有类my special class,但不会检查所有具有my special class的子元素
$('#myDiv .my-special-class').length