Javascript 删除包含特定文本的链接
我正在建立一个词汇表页面。我在页面顶部有一个字母表中每个字母的列表,通过锚文本链接到内容的正确部分。 如果信中没有任何条款,我想删除信中的链接 我没有收到任何错误,但是代码没有删除链接,或者据我所知没有任何影响 正在尝试删除B的链接Javascript 删除包含特定文本的链接,javascript,Javascript,我正在建立一个词汇表页面。我在页面顶部有一个字母表中每个字母的列表,通过锚文本链接到内容的正确部分。 如果信中没有任何条款,我想删除信中的链接 我没有收到任何错误,但是代码没有删除链接,或者据我所知没有任何影响 正在尝试删除B的链接 函数removeLink(){ var letternavcontent=document.getElementById(“letternav”).innerHTML; var字母=document.getElementsByCassName(“字母”); if(
函数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删除锚定标记。另外,请查看问题,因为注释已更新,表示他们想完全删除链接。