2014-11-03 2 views
0

Попытка добавить цвет фона для всех элементов моей ул, которые не содержат ссылкуИспользование JQuery для выбора элементов списка, которые * не * содержат ссылку

HTML:

<ul id="list"> 
    <li><a href="http://google.com/">Google</a></li> 
    <li><a href="http://yahoo.com/">Yahoo</a></li> 
    <li>Not a link</li> 
    <li><a href="http://live.com/">Live</a></li> 
    <li>Not a link</li> 
    </ul> 

Javascript:

$('#list li').css({'background': 'red'}); 

Но это меняет все из них - http://jsbin.com/pusogihuvi/1/edit?html,js,output

+0

возможно дубликат [Получить все элементы без дочернего узла в JQuery] (http://stackoverflow.com/questions/11061594/get-all-elements-without-child-node-in-jquery) –

+0

Возможный дубликат [jQuery selectors - поиск объектов без указанного атрибута] (http://stackoverflow.com/questions/1969141/jquery-selectors-find- объекты-без Удельный эд-атрибут) –

ответ

4

Используйте :not псевдоселектор для исключения совпадений. Используйте псевдоселектор :has, чтобы увидеть, содержит ли элемент заданное соответствие (без потери области предка).

$('#list li:not(:has(a))').css({'background': 'red'}); 
Смежные вопросы