当这个脚本插入到 HTML 文档中时,它会导致奇怪的行为。显示的 textarea 元素在 <br>
之后丢失其值。标签插入(我已经在 Chrome 42 中测试过):
var text = document.createElement("textarea");
document.body.appendChild(text);
text.value = "text";
alert("value presents");
document.body.innerHTML += "<br>"; //(*)
alert("value absents");
这是什么原因?
最佳答案
innerHTML
属性是一把大锤。
调用document.body.innerHTML += '<br>'
您所做的就是从 <body>
中删除每个元素并将它们替换为碰巧共享相同结构的全新元素。
value
属性设置为原始 <textarea>
但全新的从未有过value
属性集。
如果您只想附加 <br>
元素,创建一个并通过 DOM api 附加它:
var br = document.createElement('br');
document.body.appendChild(br);
关于javascript - 文本区域的下一个兄弟有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30142147/