Javascript 中不区分大小写的 textContent

case insensitive textContent in Javascript

我有以下代码使用我来处理网页中具有特定文本内容的所有链接:

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 中有所不同,事实上我认为我是对的,当我在代码中将它从 if (link.textContent == 'remove') 更改为 if (link.textContent == 'Remove') 时,代码有效。


作为初学者,我只是出于好奇才问(因为我谦虚地知道这样的网页-DOM 可能会出现差异):

有没有办法让 textContent 检查在 vanilla JS 中不区分大小写?

我相信答案会包括正则表达式,但我必须参加任何正则表达式课程(应该很快就会进行),目前我自己无法回答。

您可以使用 javscript 函数将文本更改为小写。 在这里,我只是创建一个变量名文本,然后在 if 条件下使用 toLowerCase() 函数。谢谢

 var text = link.textContent;
 if (text.toLowerCase() == 'remove') {
     text.click();
 }

编辑:代码缩进

我会将您转到此页面: JavaScript case insensitive string comparison

简而言之,您可以使用 toUpperCase() 简单地比较两个字符串的大写版本(或小写版本)以检查它们是否为 ignoreCaseEqual toLowerCase() 函数如下所述:

string1.toUpperCase() === string2.toUpperCase();
string1.toLowerCase() === string2.toLowerCase();

在您的情况下,只需使用:

if (link.textContent.toLowerCase() == 'remove') { 
    // since remove is already lowercase
    // do stuff
}

为什么不使用 toLowerCase 函数?

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();
    }
}

比较removeRemove甚至REMOVE都没关系。