javascript - jQuery 包含更长的单词

标签 javascript jquery

$.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 的消息的方法。但是,有时在聊天中人们会说 Dexterity,这也会被突出显示。我正在寻找一种方法来仅突出显示“Dexter”一词的出现

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

它包含单词 Actually,使用 text 函数无法匹配它。

最佳答案

如果你想要一个严格匹配的文本

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/

相关文章:

javascript - 开发工具在 Electron 中的大小和位置

javascript - 是什么让这段代码一遍又一遍地执行

javascript - 从 DOM 中选择元素时提高性能

JavaScript-使用对象的方法从父数组中删除对象

javascript - 从 JSON 到分组 ul

javascript - 自动重新加载时增加 AJAX 和 Flask 中的变量

jquery - 相当于 jQuery 中的 document.createElement ('option' )

javascript - 为什么这个简单的 javascript 替换不将破折号更改为斜线?

javascript - 为什么在 jQuery 中必须使用 ".text(x)"而不是 ".text = x"?

jquery - 交叉淡入淡出动画