Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 目标全部<;a>;元素具有特定的textContent,但没有可用的标识符_Javascript_Arrays_Loops_Dom_Properties - Fatal编程技术网

Javascript 目标全部<;a>;元素具有特定的textContent,但没有可用的标识符

Javascript 目标全部<;a>;元素具有特定的textContent,但没有可用的标识符,javascript,arrays,loops,dom,properties,Javascript,Arrays,Loops,Dom,Properties,我有一个网页,其中包含一些我想删除的a标签 假设这些a标记没有标识符,并且我也用后端(不是我的站点)的标识符来满足它们: 如何通过textContent属性将所有这些a元素作为目标 我已经尝试过这些代码: 第一个是未定义的 第二个带来了意外的标识符 作为一名JS新生,我错过了什么 代码1: let textToRemove = [ "עריכה", "עריכת קוד מקור", "שיחה", "גרסאות קודמות", "מזנון", "כיכר העיר" ]; docu

我有一个网页,其中包含一些我想删除的
a
标签

假设这些
a
标记没有标识符,并且我也用后端(不是我的站点)的标识符来满足它们:

如何通过
textContent
属性将所有这些
a
元素作为目标

我已经尝试过这些代码:

  • 第一个是未定义的
  • 第二个带来了意外的标识符
作为一名JS新生,我错过了什么

代码1:

let textToRemove = [
"עריכה",
"עריכת קוד מקור",
"שיחה",
"גרסאות קודמות",
"מזנון",
"כיכר העיר"
];

document.querySelectorAll("a").forEach( e => {
    if ( e.textContent == textToRemove ) {
        e.style.display = "none"
    }
});
代码2:

let strings = [
"עריכה",
"עריכת קוד מקור",
"שיחה",
"גרסאות קודמות",
"מזנון",
"כיכר העיר"
];

let links = document.querySelectorAll("a");

for ( string as strings) {
    if ( links.textContent == strings) {
        link.style.display = "none";
    }
}

因此,看起来您试图将标记内的文本与
字符串
/
文本移动
数组内的字符串进行比较,然后隐藏匹配的元素

您的代码中有一些错误。请尝试以下操作,而不是代码1:

var x = document.querySelectorAll("a");
for (var i = 0; i < x.length; i++) {
    if (strings.indexOf(x[i].textContent) != -1) {
        x[i].style.display = "none";
    }
}
var x=document.querySelectorAll(“a”);
对于(变量i=0;i

不能使用
==
查看数组中是否包含特定字符串。相反,使用
indexOf
是有效的,因为它搜索值并返回其索引(如果存在),如果不存在则返回-1。

第二种语法属于PHP

无论如何,您的第一个代码有一些错误,首先您尝试比较数组和字符串,而不是检查数组是否包含字符串

2) 比较运算符是
=
而不是
=

3) 在函数末尾的
}
之前放置

工作代码:

let textToRemove = [
"עריכה",
"עריכת קוד מקור",
"שיחה",
"גרסאות קודמות",
"מזנון",
"כיכר העיר"
];

document.querySelectorAll("a").forEach( e => {
    if (textToRemove.indexOf( e.textContent ) > -1 ) {
    e.style.display = "none";
    }
}); 

这是什么样的情况:
(e.textContent=textToRemove)
?语法错误来自交换的括号
)}
,它需要在第一个代码段的末尾
}
。@Teemu,是的,我支持你
(字符串为字符串){…
哈?我想我把PHP语法与JS
for…的语法混淆了。修复了拼写错误(从
)。是的,我知道比较运算符是
==
,正如我在第二个示例中所写的那样。在第一个例子中,这是一个打字错误。现在将修复。非常感谢。稍后我将对此进行检查。Abe,
if(strings.indexOf(links[I].textContent)=true){
对我来说似乎有点困惑。有没有其他的表达方式呢?我是JS新手,对我来说确实有点困惑。嗯,你刚才评论的代码片段我并没有真正写出来,但我可以分解我为你发布的第三行内容。基本上我使用的是
索引()
方法,该方法可用于javascript中的所有数组。如果您的数组包含
yourArray.indexOf(stringToLookFor)中的任何内容
它将返回索引。如果字符串不在数组的任何元素内,它将返回-1。因此,我的意思是,如果元素的textContent在
字符串
数组内,则将其display属性设置为
none