Используйте jQuery.filter(), чтобы выбрать определенный текст в div

HTML:

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

JQuery

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

Я пытаюсь изолировать слова "мое имя" в теге <p class="greeting">. Может ли кто-нибудь помочь мне с jQuery, поскольку он, похоже, не работает. Спасибо.

Ответ 1

Здесь вы идете:

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 );
});

Live demo: http://jsfiddle.net/SGCDS/5/

Ответ 2

Вы всегда возвращаете функцию false. Только если в вашем div точно указано "мое имя", оно вернет true.

Попробуйте что-то вроде этого:

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