Как добавить обработчик кликов в <li>
элементов, которые не имеют определенный класс?
Я хочу сделать что-то вроде этого:Исключить определенное имя класса из обработчика кликов
$('ul.listClass li a :not(li.thisLi)').on("click")...
Как добавить обработчик кликов в <li>
элементов, которые не имеют определенный класс?
Я хочу сделать что-то вроде этого:Исключить определенное имя класса из обработчика кликов
$('ul.listClass li a :not(li.thisLi)').on("click")...
Ваш селектор :not
находится в неправильном месте, вы должны использовать его на литий.
$('ul li:not(.thisLi) a').on('click', ...);
Применить :not()
к li
части вашего выбора и указать селектор класса, который вы хотите исключить.
$('ul.listClass li:not(.thisLi) a')
Это приводит к:
Выберите [<a>
] внутри [<li>
, которые не имеют класс "thisLi"] внутри [<ul>
, которые имеют класс "listClass"]
Для ссылка, см. jQuery's :not() selector.
Все селекторы принимаются внутрь: не()
$('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 в.
работал для меня.
Как вы его реализовали? – showdev