Используйте jQuery .filter (), чтобы выделить конкретный текст в div - PullRequest
6 голосов
/ 01 ноября 2011

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 ]

8 голосов
/ 01 ноября 2011

Вот, пожалуйста,

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/

0 голосов
/ 01 ноября 2011

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

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

return $(this).text().indexOf("my name is") != -1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...