首页 > 解决方案 > jquery:不选择不排除预期元素

问题描述

鉴于以下情况:

// all text should be red except in the excludeme id
$('body:not(#excludeme)').css('color', 'red');
// $('#excludeme').css('color','blue');
body {
  color: green;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div>
	div text
</div>
<br />
<span>
	<a id="excludeme">this text should be green</a>
	<br />
	span text
</span>

所有文本都显示为红色,但 excludeme id 中的文本应保持绿色。为什么 :not 选择器不排除选定的 id?

标签: jquery

解决方案


:not正在按预期工作。如果您检查 html 代码,您可以看到该a元素没有将颜色变为红色的内联样式。它从父元素获取颜色,因为所有其他元素都有红色。如果你愿意,你可以为这样的元素声明一个样式css

#excludeme{
    color: green;
}

inheritance你可以在这里阅读更多css


推荐阅读