我是JS的新手,我想做的只是使用JS将数据从一个div复制到另一个div但是我得到了未定义的错误
<div id="div_one">Hello</div>
<div id="div_two"></div>
<script>
document.getElementById("div_two").innerHTML =
document.getElementById("div_one").value;
</script>
答案 0 :(得分:25)
您需要使用innerHTML
属性来获取值。
value
仅适用于some elements,例如<button>
,<option>
,<input>
,<li>
,<meter>
,{ {1}},<progress>
。
<param>
document.getElementById("div_two").innerHTML =
document.getElementById("div_one").innerHTML;
答案 1 :(得分:6)
注意:如果
<div>
,<span>
或<noembed>
节点的子文本节点包含字符(&amp;),(&lt; 1 ),或(&gt;),innerHTML
分别将这些字符作为&
,<
和>
返回。使用Node.textContent
获取这些文本节点的正确副本&#39;内容。
textContent
通常具有更好的性能,因为文本不会被解析为HTML。- 此外,使用
textContent
可以防止XSS攻击。
从这个意义上讲,您也可以尝试其他属性:
let div1IH = document.getElementById("div_one").innerHTML;
console.log(div1IH);
let div1TC = document.getElementById("div_one").textContent;
console.log(div1TC);
let div1IT = document.getElementById("div_one").innerText;
console.log(div1IT);
document.getElementById("div_two").innerHTML = div1IH;
document.getElementById("div_three").innerHTML = div1TC;
document.getElementById("div_four").innerHTML = div1IT;
&#13;
<div id="div_one">Hello & > _ < & </div>
<div id="div_two"></div>
<div id="div_three"></div>
<div id="div_four"></div>
&#13;
由于在这种情况下您可能希望复制HTML内容,innerHTML
可能已足够,但如果您要将该数据仅用作文本,则可能更喜欢上面的替代属性。