用JavaScript操作DOM,除了setAttribute外,还有啥办法修改html节点的值吗?

题述中的 “HTML节点”,是指 Node 吗?Node 有很多种,方法和属性也各有不同。Node - Web APIs就淘宝这个 input ,它的 value,你可以认为它是 attribute ,通过 input.setAttribute() ,或者 input.attributes.value 去操作它,也可以认为它是 property,通过 input.value 去操作它。那么 attribute 和 property 有啥区别呢?attribute 是 HTML 里写好的,property 是 DOM 节点的属性;有一些 attribute 会映射到 property (如 value/id 等),有一些 attribute 则不会;HTML 里写好的 attribute,在映射到 property 时作为 property 的初始值;后续的修改最好是直接改 property,改 attribute 不一定生效,关于这一点,每一个浏览器、每一个元素都可能会有自己的行为,data attribute/property 的引入,使得这个问题更复杂了。关于 attribute/property ,可以看看这个 demohttp://jsfiddle.net/n9rcdvhr/3/通过这个例子我们可以看到:input 的 value property 重新赋值,不会改变 value attribute ,value.setAttribute(\u0026#39;value\u0026#39;, \u0026#39;xxx\u0026#39;) ,也不会改变 input.value。img 的 src property 却会与 src attribute 相互影响。
■网友
setAttribute不是用来修改自定义属性的么。通用属性可以直接用 x.value ,x.title 这种方法获取或者修改→_→


    推荐阅读