javascript - 如何突出显示所有匹配的字符串

标签 javascript jquery

页面包含搜索输入字段和表格。

如何在表格中突出显示与输入字段中的文本匹配的所有子字符串?

我已经尝试过这个,但它改变了 td 元素的背景。

$(".projects-list > tbody > tr > td:contains('"+$(this).val()+"')").css("background", "#6a5acd");

如何仅突出显示匹配的文本部分?

最佳答案

您可以在每个目标单元格上使用split(matchingText).join(wrappedMatchingText)

$('.projects-list td').each(function (i, e) {
    var $e = $(e);
    $e.html($e.html().split(text).join('<span class="matching">' + text + '</span>'));
});

这会将目标字符串的所有实例(存储在变量 text 中)包装在各个 span.matching 标签内

<删除> DEMO DEMO

关于javascript - 如何突出显示所有匹配的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21401037/

相关文章:

javascript - 使用 Jquery 检查多个复选框

javascript - 返回 0 或 NaN 的值而不是实际结果

jquery - Cloudinary 上传小部件与 "Failed to set the ' 上的 Jquery 'HTMLInputElement' value' 属性“

javascript - 仅当用户在 200px 和 300px 之间滚动时添加一个类

java - 如何使用javascript发送文件

javascript - 这个 JavaScript 结构叫什么

javascript - socket.io 循环在开始时终止

javascript - Object.将 this 与 NodeList 一起分配

javascript - Jquery 切换包括 IE8、9、10 中的错误

javascript - 如何在 jQuery 中仅定位当前悬停的元素