为什么jQuery选择器':not'不起作用?

4
我想选择一个带有id或class的div,并同时排除div内部的一个id或class,并将内容作为字符串获取。
这是我的标记:
<div id='main-content'>
  <div>test 1</div>
  <div class='ignore'>ignore test</div>
</div>

我尝试了 $('#main-content:not(.ignore)').text();

它选择了具有id为main-content的div,但是字符串中仍然包含class为ignore。我做错了什么?

这里有一个示例


2
你是说 #main-content 没有这个类。 - epascarello
请在 Stack Overflow 上包含所有相关代码,而不仅仅是在其他网站上。请参见 [ask],其中写着:“如果可能创建一个可以链接到问题的实时示例(例如,在 http://sqlfiddle.com/ 或 http://jsbin.com/ 上),那么请这样做 - 但也将代码复制到问题本身中。” - Heretic Monkey
@Heretic Monkey 对不起,下次我会这样做。 - Ajay
1个回答

5
您正在选择具有id的元素,然后说它不应该有类。这应该在子元素上完成。

console.log($("#main-content > *:not(.ignore)").text());
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id='main-content'>
  <div>test 1</div>
  <div class='ignore'>ignore test</div>
</div>


谢谢你,epascarello。我想选择id为“main-content”的元素,但是不包含类名为“ignore”的元素。我以为它会选择没有“ignore”类的“main-content”元素。再次感谢你。 - Ajay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接