2种类型的textarea值

时间:2018-05-22 10:58:32

标签: javascript html textarea

HTML <textarea/>元素同时包含2&#34; value&#34;领域;并且在查看元素的html源时只能看到其中一个。 (如下例所示)。

有人可以解释为什么会这样,&#34; Type2&#34;价值存储在这里?

理论:What is the difference between properties and attributes in HTML?

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

1 个答案:

答案 0 :(得分:1)

您的setAttribute()来电将value 属性应用于DOM中的textarea元素。这在技术上是不正确的,因为textarea元素没有value属性。

然后,您可以设置元素的value 属性。这是正确的用法,是在元素中设置可见文本的原因。

这个逻辑的结果就是这个HTML:

<textarea value="Type1">Type2</textarea>

当您使用getAttribute()时,您会从返回value的元素中读取(非标准)Type1 属性

当您阅读value 属性时,您(正确地)读取该字段的用户可编辑内容中包含的值,该值返回Type2

简而言之,您遇到的困惑是因为您使用名为value属性和名为value属性,它们是应用于textarea时不一样。