在devtools中,运行以下两行:
1.
window.x = document.createElement("input");
x.type="text";
x.name="nm";
x.value="val";
x
// <input type="text" name="nm">2.
window.x = document.createElement("input");
x.type="text";
x.name="nm";
x.setAttribute("value", "val");
x
// <input type="text" name="nm" value="val">为什么要以不同的方式印出来?在这两种情况下,似乎都正确地设置了值。该属性与DOM属性之间似乎存在断开关系。
而且,属性.value的getter与.getAttribute('value')的结果不同。我可以整天setAttribute(),但是.value返回旧值。
发布于 2016-04-07 08:40:33
这两种方法的主要区别在于设置基础defaultValue属性。使用setAttribute时,defaultValue属性和value属性都将被更新/设置。而使用.value只会更新/设置它的value属性。
行为1:(使用setAttribute设置值)
x.setAttribute("value","test");
x.defaultValue; //"test"
x.value; //"test"行为2:(直接使用value属性设置值)
x.value = "test";
x.defaultValue; //""
x.value; //"test"https://stackoverflow.com/questions/36470788
复制相似问题