HTML <textarea/>
元素同时包含2&#34; value&#34;领域;并且在查看元素的html源时只能看到其中一个。 (如下例所示)。
有人可以解释为什么会这样,&#34; Type2&#34;价值存储在这里?
理论:What is the difference between properties and attributes in HTML?
var dummy = document.createElement("textarea");
document.body.appendChild(dummy);
dummy.setAttribute('value', "Type1");
dummy.value = "Type2";
console.log("attributeValue is " + dummy.getAttribute('value'));
console.log(".value is " + dummy.value);
&#13;
答案 0 :(得分:1)
您的setAttribute()
来电将value
属性应用于DOM中的textarea
元素。这在技术上是不正确的,因为textarea
元素没有value
属性。
然后,您可以设置元素的value
属性。这是正确的用法,是在元素中设置可见文本的原因。
这个逻辑的结果就是这个HTML:
<textarea value="Type1">Type2</textarea>
当您使用getAttribute()
时,您会从返回value
的元素中读取(非标准)Type1
属性。
当您阅读value
属性时,您(正确地)读取该字段的用户可编辑内容中包含的值,该值返回Type2
。
简而言之,您遇到的困惑是因为您使用名为value
的属性和名为value
的属性,它们是应用于textarea
时不一样。