У меня есть класс css, который применяется ко всем ссылкам в div с классом "linkroll":
var selector = '.linkroll a';
Я пытаюсь помешать добавлению этого класса в любые гиперссылки в div. Как мне это сделать?
Например, я бы не хотел, чтобы этот класс применялся:
<div class="linkroll"><a href="#somelink"><img src="someimg.jpg"></a></div>
var selector = '.linkroll a';
// if selector is not image, then do something...
CSS может только спуститься вниз по дереву DOM, поэтому вы не можете добавить класс на основе дочерних элементов, только для родителей. Однако вы можете использовать jQuery для этого с помощью filter()
:
$('.linkroll a').filter(function() {
return $(this).children('img').length == 0;
}).addClass('foo');
У меня есть класс css, который применяется ко всем ссылкам в div с классом "linkroll"
что означает, что он уже применяется, поэтому, полагаю, теперь вы хотите избавиться от этого класса:
$('.linkroll a > img').closest('div').removeClass('linkroll');
$ ('. linkroll a'). filter (function() {
return $(this).attr('href');
.}) Родитель() removeClass ( 'linkroll').