javascript - 如果 innerHTML 是邪恶的,那么更改链接文本的更好方法是什么?

标签 javascript dom innerhtml

我知道 innerHTML 被认为是邪恶的,但我认为这是更改链接文本的最简单方法。例如:

<a id="mylink" href="">click me</a>

在 JS 中你可以改变文本:

document.getElementById("mylink").innerHTML = new_text;

在 Prototype/jQuery 中:

$("mylink").innerHTML = new_text;

工作正常。否则,您必须先替换所有子节点,然后再添加一个文本节点。何必呢?

最佳答案

怎么样

document.getElementById('mylink').firstChild.nodeValue = new_text;

这不会遇到 PEZ 描述的问题。

关于Triptych的评论和bobince的回复,还有一个解决办法:

var oldLink = document.getElementById('mylink'),
    newLink = oldLink.cloneNode(false);
newLink.appendChild(document.createTextNode(new_text));
oldLink.parentNode.replaceChild(newLink, oldLink);

关于javascript - 如果 innerHTML 是邪恶的,那么更改链接文本的更好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/395051/

相关文章:

javascript - 检查元素是否是 DOM 中类的最后一个

javascript - amCharts 不显示 json 数据

javascript - 这段js代码有什么错误

javascript - AngularJS Controller 内函数的 AddEventListener

jquery - 观察 DOM 变化,优雅的方式

javascript - javascript settimeout 有什么问题

Javascript 生成的 HTML 不起作用

python - 使用 selenium get_attribute 扭曲 HTML 内容

javascript - 如何使用 querySelector 将数据传递到 DOM

javascript - 如何在下拉菜单单击上使用 Angular 2 显示 ng2-chart?