Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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 删除包含特定文本的链接_Javascript - Fatal编程技术网

Javascript 删除包含特定文本的链接

Javascript 删除包含特定文本的链接,javascript,Javascript,我正在建立一个词汇表页面。我在页面顶部有一个字母表中每个字母的列表,通过锚文本链接到内容的正确部分。 如果信中没有任何条款,我想删除信中的链接 我没有收到任何错误,但是代码没有删除链接,或者据我所知没有任何影响 正在尝试删除B的链接 函数removeLink(){ var letternavcontent=document.getElementById(“letternav”).innerHTML; var字母=document.getElementsByCassName(“字母”); if(

我正在建立一个词汇表页面。我在页面顶部有一个字母表中每个字母的列表,通过锚文本链接到内容的正确部分。 如果信中没有任何条款,我想删除信中的链接

我没有收到任何错误,但是代码没有删除链接,或者据我所知没有任何影响

正在尝试删除B的链接

函数removeLink(){
var letternavcontent=document.getElementById(“letternav”).innerHTML;
var字母=document.getElementsByCassName(“字母”);
if(letternavcontent.indexOf('B')>-1){
信函。删除属性(“href”);
}
}
检查此项

document.getElementsByClassName
返回具有该类名的所有元素,而不仅仅是一个。因此,您必须循环浏览此列表并检查每个列表

function removeLink (){

  var letter = document.getElementsByClassName("letter");

  for (var i = 0; i < letter.length; i++) {
    if (letter[i].innerHTML.indexOf('B') > -1) {
      letter[i].removeAttribute("href");
    }
  }
}
函数removeLink(){
var字母=document.getElementsByCassName(“字母”);
对于(变量i=0;i-1){
信函[i]。删除属性(“href”);
}
}
}
这个怎么样

const removeLinkFromLetter=letter=>{
//迭代每个字母元素
[…document.querySelectorAll('.letter')].forEach(elt=>{
//如果元素具有指定的字母作为其文本。。。
if(elt.innerText.trim()=字母){
//…将其内容更改为不带锚定标记的字母
elt.innerHTML=字母;
}
});
}
window.onload=()=>{
从字母(“A”)中删除链接;
}

| | |


字母
将是一个数组或节点列表(注意getElementsByCassName)
removeAttribute
是一种元素方法。你必须在节点列表上循环才能使用它,不太清楚“删除链接”是什么意思。是否希望它不再位于锚定标记内?是否要删除锚定标记或仅删除属性href?看起来您想删除锚定标记。我想删除整个链接,因此它是不可链接的访问父元素->通过其子元素循环->检查是否包含某些文本,然后使用parent.removeChild删除锚定标记。另外,请查看问题,因为注释已更新,表示他们想完全删除链接。