2014-11-26 8 views
0

Для JQuery и селектора: Возможно ли найти несколько строк в подселекторе содержимого для вложенных дочерних элементов?JQuery, Селекторы - дочерние элементы и содержит выражения

Для примера:

<div> 
    <span>foo</span> 
    <span>bar</span> 
</div> 

// comma is usual OR operator. 
$("div > span:contains(['foo'],['bar'])").css("text-decoration","underline"); 

Ожидаемое: Оба элементы получают подчеркнуты.

Если он еще не реализован, можем ли мы его реализовать?^-^

+0

textdecoration к textdecoration –

ответ

1

Да, вы можете искать оба или многие поисковые термины, содержащих DIV или интервал или любой другой элемент HTML, используя следующий метод

$('span:contains("foo"), span:contains("bar")').css("text-decoration", "underline") // either one OR two 
$('span:contains("foo"):span:contains("bar")').css("text-decoration", "underline") //span, which contains both 
1

Вы можете попробовать использовать .filter() как

$("div > span").filter(":contains('foo'),:contains('bar')").css("text-decoration", "underline");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div> 
 
    <span>foo</span> 
 
    <span>bar</span> 
 
</div>

+0

После просмотра обоих решений это, вероятно, более подходящим, так как он принимает во внимание дочерних элементов. Спасибо всем.^- ^ – Langerz

0

Использование text-decartion с '-' в synatax. Вы пропустили я думаю

$("div span").each(function() { 

    if($(this).text() == "foo" || $(this).text() == "bar"){ 

    $(this).css("text-decoration", "underline"); 
    } 
}); 

FIDDLE

Смежные вопросы