case insensitive textContent in Javascript
本问题已经有最佳答案,请猛点这里访问。
我有以下代码,它使用我来处理网页中具有特定文本内容的所有链接:
1 2 3 4 5 6 7 | let links = document.querySelectorAll('a b'); for (let i = 0; i < links.length; i++) { let link = links[i]; if (link.textContent == 'remove') { link.click(); } } |
在某个网页中,网页上名为"remove"但在dom中显示为"remove"(不是大写的r)的链接。
一开始我不知道DOM是这样的,也不明白为什么代码不能工作。
很高兴,我觉得它在DOM中是不同的,实际上我看到了我是对的,当我将代码从
作为一个初学者,我只是出于好奇而问(因为我谦虚地意识到这样的网页DOM差异可能会发生):
在普通JS中,有没有一种方法可以使文本内容检查不区分大小写?
我相信答案会包括regex,但我必须接受任何regex课程(应该很快就会发生),目前,不能自己回答。
我会把你送到这一页:javascript不区分大小写的字符串比较
简而言之,您只需使用touppercase()或tolowercase()函数比较两个字符串的上(或下)版本,以检查它们是否为ignoreCaseEqual,如下所述:
1 2 | string1.toUpperCase() === string2.toUpperCase(); string1.toLowerCase() === string2.toLowerCase(); |
在您的情况下,只需使用:
1 2 3 4 | if (link.textContent.toLowerCase() == 'remove') { // since remove is already lowercase // do stuff } |
为什么不使用tolowercase函数?
1 2 3 4 5 6 7 | let links = document.querySelectorAll('a b'); for (let i = 0; i < links.length; i++) { let link = links[i]; if (link.textContent.toLowerCase() == 'remove') { link.click(); } } |
比较移除、移除甚至移除都没关系。
您可以使用javscript函数将文本更改为小写。在这里,我只创建一个变量名文本,然后在if条件中使用tolowercase()函数。谢谢
1 2 3 4 | var text = link.textContent; if (text.toLowerCase() == 'remove') { text.click(); } |
编辑:代码缩进