javascript - 2 种类型的文本区域值

标签 javascript html textarea

<分区>

HTML <textarea/>元素同时包含 2 个“值”字段;在查看元素的 html 源代码时,只有其中一个是可见的。 (如下例所示)。

有人可以解释为什么会这样吗?“Type2”值存储在哪里?

理论: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);

最佳答案

你的 setAttribute()调用应用 value 属性 textarea DOM 中的元素。这在技术上是不正确的 textarea元素没有 value属性。

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

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

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

当您使用 getAttribute() 时你读了(非标准)value 属性 来自返回 Type1 的元素.

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

简而言之,您的困惑是因为您正在使用名为 value属性和名为 value属性(property) , 当应用于 textarea 时它们不是同一回事.

关于javascript - 2 种类型的文本区域值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50466002/

相关文章:

javascript - AngularJS:数据绑定(bind)生成空 HTML 标签(Django 冲突)

css - 可调整大小的文本区域的大小转换

html - 使用 CSS 设置文本区域的 "required"属性样式不起作用

javascript:将 key 从 for 循环传递到另一个函数失败

javascript - 在带有 JavaScript 的普通 HTML 页面中使用 GitLab 变量

javascript - 将鼠标悬停在不同的文本消息上时,在同一帧中显示不同的图像

html - SVG 绳索上的柔和波浪效果

html - html lang 属性在文本区域或其他用户可编辑元素上意味着什么?

javascript - 向 WordPress 添加自定义 JavaScript、CSS 和 HTML

javascript - 如何从 JavaScript 类方法中引用函数