我正在尝试更改锚中的文本,如下所示:
for (var i = 0; i < anchors.length; i++) {
...
anchors[i].text = anchors[i].text + "+";
}我尝试了其他方法,如concat和append,但都不起作用。
anchors[i].innerHTML有帮助,但代码是在DOMContentLoaded上调用的,我只想添加"+“字符串,而不是添加不可预测的"+"*序列,例如"++++++++”
感谢您的帮助
发布于 2011-06-07 03:21:48
简单地说,HTMLElement.innerHTML是用于超文本标记语言字符串的。在您的例子中,您正在寻找Node.textContent和非标准的Node.innerText,因为您只是替换文本。
var anchors = document.links;
for(var i=0;i<anchors.length;i++)
{
var anchor = anchors[i];
if(anchor.textContent)
{
//W3C DOM
anchor.textContent += "+";
}else if(anchor.innerText)
{
//Microsoft DOM
anchor.innerText += "+";
}
}在处理较旧的浏览器时,您可以使用类似于这里提供的bobince的代码片段(请注意,它将清除childNodes并用文本节点替换它们):'innerText' works in IE, but not in Firefox
参考资料:
https://developer.mozilla.org/En/DOM/Node.textContent
发布于 2011-06-07 02:29:45
JavaScript DOM没有.text。它有.innerHTML
发布于 2011-06-07 02:30:45
如果您指的是链接文本:
var anchors = document.getElementsByTagName("A");
for (var i = 0; i < anchors.length; i++) {
anchors[i].innerHTML += "+";
}https://stackoverflow.com/questions/6256380
复制相似问题