2015-04-16 98 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,可以應用邏輯的元素,並返回只有那些符合測試(s)回來。

1

變化containshas

$(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

你的第三行返回相同的對象作爲第二線,因爲你使用的是選擇含有這是「新」相同的字符串。它們都匹配DOM中的相同元素。

我會建議使用jQuery filter method來代替。使用.filter()並使用.text()方法檢查跨度的內容。如果.filter()返回true,則添加您的類,顏色等。

相關問題