Javascript:setAttribute()v.s. element.attribute = value来设置“name”属性

所以我正在学习操纵DOM,我注意到一件有趣的事情:

假设我想使用“.”设置元素的name属性.点符号:

element.name = "someName";
console.log(document.getElementsByName("someName")[0]); // returns "undefined"??

但是,如果我使用document.setAttribute()方法,它可以正常工作:

element.setAttribute("name", "someName");
console.log(document.getElementsByName("someName")[0]); // returns the element like it should.

不确定为什么点符号方法在第一种情况下不起作用.

为什么会这样?

解决方法:

我的猜测(因为你没有指定元素类型)是元素通常没有name属性,所以设置这样的DOM属性是行不通的.

例如,在input元素上设置name属性将起作用.在div上设置它不会.

但是,它可以使用setAttribute().

jsFiddle.

上一篇:javascript setAttribute样式


下一篇:HTML5 自定义属性