在DOM中搜索字符串时不区分大小写
Case insensitive searching for a string in DOM
我在每个文本节点上迭代,并寻找一个搜索字符串,无论它在该文本节点中是否可用。如果它存在,我将围绕跨度节点进行高亮显示。示例代码位于以下链接:。http://jsfiddle.net/LcRDz/.
现在,如果用户给出一个单词,它将只搜索该单词。无论大小写,我都需要在DOM中搜索单词。例如,如果我的搜索词是the
,它应该突出显示单词The, THE, the
。
在使用indexOf
进行检查之前,请对两个值使用toLowercase
,使比较不区分大小写。
//Notice both n.nodeValue and word are sent to lowercase.
for (var i;
(i = n.nodeValue.toLowerCase().indexOf(word.toLowerCase(), i)) > -1;
n = after) {
var after = n.splitText(i + word.length);
var highlighted = n.splitText(i);
var span = document.createElement('span');
span.className = "spanClass";
span.style.backgroundColor = "red";
span.appendChild(highlighted);
after.parentNode.insertBefore(span, after);
}
JS FIDDLE:http://jsfiddle.net/LcRDz/2/
您应该通过修改来解决问题
for (var i;
(i = n.nodeValue.indexOf(word, i)) > -1; n = after)
带有
for (var i;
(i = n.nodeValue.toLowerCase().indexOf(word.toLowerCase(), i)) > -1; n = after)
从更改highlightWords方法中的for循环
原件:
for (var i;
(i = n.nodeValue.indexOf(word, i)) > -1; n = after)
新增:
for (var i;
(i = n.nodeValue.toLowerCase().indexOf(word.toLowerCase(), i)) > -1; n = after)
相关文章:
- 如何使后缀函数不区分大小写
- 使搜索不区分大小写
- Regex:匹配以“AM”结尾的单词(不区分大小写比较)
- 如何使用jQuery进行不区分大小写的搜索
- 将字符串添加到不区分大小写的 RegExp 中替换的事物开始
- javascript从字符串创建不区分大小写的regex
- :包含不区分大小写的解决方案在替换文本以突出显示时不起作用
- 当涉及到if语句时,我如何使Javascript不区分大小写
- 使用简单的角度滤波器来替换输入字符串中某些字符串的所有出现,而不考虑大小写和空格
- Regex以匹配整数或单词“”;“其他”;,不区分大小写
- Javascript中不区分大小写的自动完成
- 使.search()对变量不区分大小写
- extjssortable不按大小写和日期排序
- 在DOM中搜索字符串时不区分大小写
- 不区分大小写的自动完成搜索(使用java、javascript、jquery)
- 如何将不区分大小写添加到照片库搜索框jquery
- 使答案不区分大小写
- 使用 Amazon Dynamo DB 进行不区分大小写的查询
- 正则表达式不区分大小写,输入匹配
- 不区分大小写的 jQuery 属性选择器