【发布时间】:2019-02-22 21:01:29
【问题描述】:
如何确定 html 元素是否具有“值”属性/属性?
文本区域示例:
let textarea = document.createElement("textarea");
textarea.innerHTML = "Sike!";
console.log(textarea.hasAttribute("value")); // returns false (expected true)
console.log(textarea.hasOwnProperty("value")); // returns false (expected true)
console.log(textarea.value); // returns "Sike!";
Div 示例:
let div = document.createElement("div");
div.innerHTML = "Sike!";
console.log(div.hasAttribute("value")); // returns false (expected false)
console.log(div.hasOwnProperty("value")); // returns false (expected false)
console.log(div.value); // returns undefined; (expected thrown error)
【问题讨论】:
-
@bsplosion 我认为这个问题与这个问题没有任何关系。
-
它是输入、选择、按钮还是文本区域?它有价值!可能的标签名称足够小,根本不需要用其他方式确定。
-
@LonnieBest 我的意思是,不一定。其中一些答案对你的情况有用。
-
但是
in与原型链一起工作。试试看let a = {val: 42}; let b = Object.create(a); console.log('val' in b); -
看起来
.value是一个继承自textarea元素对象原型的getter属性。但实际上这在任何地方都无关紧要。你的actual problem 是什么?
标签: javascript dom