<分区>
<div class='class1'>
<div class='class2'>
<div class='class3'>
some text
</div>
<div class='class4'>
some text
</div>
</div>
</div>
我想选择不带 div.class4
的 div.class1
,但这不起作用。
$('.class1').not('.class4')
最佳答案
not('.class4')
方法将从匹配元素集中删除具有类 class4
的元素。
如果要过滤掉不包含.class4
的.class1
,则使用:not()
的组合和 :has()
伪类选择器。
$('.class1:not(:has(.class4))').css('color', 'red')
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='class1'>
<div class='class2'>
<div class='class3'>
some text
</div>
<div class='class4'>
some text
</div>
</div>
</div>
<div class='class1'>
<div class='class2'>
<div class='class3'>
some text
</div>
</div>
</div>
更新:如果您想要获取除 .class4
之外的元素的内容,请使用 clone()
克隆该元素方法,删除.class4
并获取内容。
console.log(
$('.class1')
// clone the element
.clone()
// get `.class4` elements
.find('.class4')
// remove them
.remove()
// back to previous selector
.end()
// get html content
.html()
)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='class1'>
<div class='class2'>
<div class='class3'>
some text
</div>
<div class='class4'>
some text
</div>
</div>
</div>
关于jquery - 无法选择子 div jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41014482/