$.extend($.expr[':'], {
'containsi': function(elem, i, match, array)
{
return (elem.textContent || elem.innerText || '').toLowerCase()
.indexOf((match[3] || "").toLowerCase()) >= 0;
}
});
window.setInterval(function() {
$("div[class^='chat-box-content'] div[class^='message'] span:containsi(Dexter)").css("background","greenyellow");
},1000);


这是我当前突出显示包含单词Dexter的消息的方法。但是,有时在聊天中人们会说“敏捷”,这也被突出显示。我正在寻找一种仅突出显示“ Dexter”一词的方法

该消息可能包含其他内容。例如,这是一条消息:
德克斯特:实际上,德克斯特

它包含单词Actual(实际),使用文本功能不会匹配。

最佳答案

如果您要严格匹配文字

span:containsi(Dexter)


应该

span:text(Dexter)


更新:

在这种情况下,您应该使用过滤器。

var matchedElem= $("div[class^='chat-box-content'] div[class^='message'] span:containsi(Dexter)").filter(function() {
    return $(this).text() === 'Dexter';
});

matchedElem.css("background","greenyellow");

关于javascript - jQuery包含更长的单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42703111/

10-08 23:06