Jquery匹配字符串中的所有单词

时间:2015-04-16 09:14:01

标签: javascript jquery regex

我有一个脚本替换文本并添加一个类。它的效果很好,但我有两个类都有" new"在他们,然后包含不起作用。如何匹配字符串中的所有单词?

代码:

$('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" );
});

3 个答案:

答案 0 :(得分:2)

要选择包含确切文本值的范围,请尝试:

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

.filter允许您将逻辑应用于元素,并仅返回与您的测试匹配的元素。

答案 1 :(得分: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 />

答案 2 :(得分:0)

您的第三行返回与第二行相同的对象,因为您使用的选择器包含相同的字符串,即&#34; New&#34;。它们都匹配DOM中的相同元素。

我建议改用jQuery filter method。使用.filter()并使用.text()方法检查span的内容。如果.filter()返回true,则添加类,颜色等。