使用jQuery .filter()选择div中的特定文本

时间:2011-10-31 20:00:53

标签: javascript jquery filter

HTML:

<p class="greeting">
  hello, my name is kevin. what's yours?
</p>

jQuery的:

$("p.greeting").filter(function (){
  return $this.text() === "my name is";
}).css("background", "green");

我正试图在<p class="greeting">标记中隔离“我的名字是”字样。任何人都可以帮助我使用jQuery,因为它似乎不起作用。感谢。

2 个答案:

答案 0 :(得分:8)

你走了:

CSS:

.highlight { background-color: yellow; }

JavaScript的:

var text = 'My namE iS';

$( 'p.greeting' ).html( function ( i, html ) {
    var regexp, replacement;

    regexp = RegExp( '(' + text + ')', 'gi' );
    replacement = '<span class="highlight">$1</span>';

    return html.replace( regexp, replacement );
});

现场演示: http://jsfiddle.net/SGCDS/5/

答案 1 :(得分:0)

你的函数返回总是false。只有在你的div中有“我的名字”时,它才会返回true。

尝试这样的事情:

return $(this).text().indexOf("my name is") != -1;