2015-04-16 2 views
2

У меня есть сценарий, который заменяет текст и добавляет класс. Он отлично работает, но у меня есть два класса, которые оба имеют «новое» в них, а затем содержат не работают. Как я могу совместить все слова в строке?JQuery соответствует всем словам в строке

код:

$('body').ready(function(){ 
    $("span.conditionHilite:contains('Begagnat')").text('Refurbished').addClass("refurbHilite"); 
    $("span.conditionHilite:contains('New Spares')").text('New spares').addClass("refurbHiliteSpares"); 
    $("span.conditionHilite:contains('New')").text('New').addClass("refurbHiliteNew"); 
}); 
+1

Как насчет этого? http://stackoverflow.com/questions/15364298/make-jquerys-contains-select-only-exact-string? – EdenSource

ответ

2

Чтобы выбрать интервал, содержащий точное значение текста, попробуйте следующее:

$('span').filter(function(){ return $(this).text() == 'New Spares'; }).text('New spares').addClass("refurbHiliteSpares"); 

.filter позволяет применить логику к элементам и возвращать только те, которые соответствуют тест (ы) назад.

1

Изменения contains в has

$(function(){ 
 
    $("span.conditionHilite:has('Begagnat')").text('Refurbished').addClass("refurbHilite"); 
 
    $("span.conditionHilite:has('New Spares')").text('New spares').addClass("refurbHiliteSpares"); 
 
    $("span.conditionHilite:has('New')").text('New').addClass("refurbHiliteNew"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<span class="conditionHilite">Refurbished</span> | <br /> 
 
<span class="conditionHilite">New spares</span> <br /> 
 
<span class="conditionHilite">New</span> <br />

0

Ваша третья строка возвращает тот же объект, как вторая линия, потому что селекторы вы используете содержат ту же строку, которая является «New». Оба они соответствуют одному и тому же элементу в DOM.

Вместо этого я предлагаю использовать jQuery filter method. Используйте .filter() и проверьте содержимое диапазона с помощью метода .text(). Если .filter() возвращает true, добавьте свой класс, цвета и т. Д.

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