我可以使用JavaScript .value属性将数据从一个div复制到另一个div吗?

时间:2018-02-07 08:24:26

标签: javascript html dom

我是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>

2 个答案:

答案 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)

根据innerHTML MDN

  

注意:如果<div><span><noembed>节点的子文本节点包含字符(&amp;),(&lt; 1 ),或(&gt;),innerHTML分别将这些字符作为&amp&lt&gt返回。使用Node.textContent获取这些文本节点的正确副本&#39;内容。

     
      
  • textContent通常具有更好的性能,因为文本不会被解析为HTML。
  •   
  • 此外,使用textContent可以防止XSS攻击。
  •   

从这个意义上讲,您也可以尝试其他属性:

&#13;
&#13;
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;
&#13;
&#13;

由于在这种情况下您可能希望复制HTML内容,innerHTML可能已足够,但如果您要将该数据仅用作文本,则可能更喜欢上面的替代属性。