我想问一下如何更改div内容,但不想使用innerhtml。
答案 0 :(得分:5)
DEMO: http://jsfiddle.net/Cb6ME/
// get the div
var div = document.getElementById('foo');
// remove child nodes while at least one exists
while( div.childNodes[0] ) {
div.removeChild( div.childNodes[0] );
}
// create a new span element
var span = document.createElement( 'span' );
// give it some text content
span.appendChild( document.createTextNode("I'm new!!!") );
// append the span to the original div
div.appendChild( span );
答案 1 :(得分:3)
您可以使用nodeValue
来访问节点的值,但是div
的值。在您的示例中,您可能具有以下HTML ...
<div id="myLovelyDiv">This is the text that you want to change</div>
和这个脚本......
var myDiv = getElementById("myLovelyDiv");
myDiv.childNodes[0].nodeValue = "The text has been changed.";
但我不明白为什么你不会使用
myDiv.innerHTML = "The text has been changed properly.";
答案 2 :(得分:2)
DIV元素是HTML中的通用块级别(默认情况下)元素,用作容纳一个或多个块或内联元素的结构容器。
根据您想要更改的内容,您可以直接选择有问题的子节点,遍历childNodes属性以查找所需的子节点,或使用innerHTML(您声明的内容)将内容完全重写为html不想做。)
如果要添加内容,可以创建新元素,并使用DIV元素的appendChild(子)方法添加内容。
那是你在找什么?
答案 3 :(得分:0)
我知道我迟到了,但是 .textContent
可以替换为 .innerHTML
(如果您只想更改文本而不是编写 HTML 代码)。