从点击处理程序中排除特定 class 名称

Exclude specific class name from click handler

如何向 <li> 具有特定 class 的元素添加点击处理程序?
我想做这样的事情:

$('ul.listClass li a :not(li.thisLi)').on("click")...

你的:not选择器放错了地方,你应该在li上使用它。

$('ul li:not(.thisLi) a').on('click', ...);

:not() 应用于选择器的 li 部分并指定要排除的 class 选择器。

$('ul.listClass li:not(.thisLi) a')

这转化为:
Select [<a>] 在 [<li> 里面没有 class "thisLi"] 在 [<ul> 里面有 class "listClass"]


参考 jQuery 的 :not() selector

All selectors are accepted inside :not()

$('ul.listClass li:not(.thisLi) a').on("click", function() {
  $(this).css({
    'background-color': 'red'
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="listClass">
  <li><a>Yes</a></li>
  <li><a>Yes</a></li>
  <li class="thisLi"><a>No</a></li>
  <li><a>Yes</a></li>
  <li class="thisLi"><a>No</a></li>
</ul>

我刚刚使用 jquery 的 .not 方法找到了答案。

http://api.jquery.com/not/

对我有用。