So I’m learning to manipulate the DOM and I noticed one interesting thing:
Let’s say I want to set the name attribute of an element by using the “.” dot notation:
element.name = "someName";
console.log(document.getElementsByName("someName")[0]); // returns "undefined"??
However if I use the document.setAttribute() method, it works fine:
element.setAttribute("name", "someName");
console.log(document.getElementsByName("someName")[0]); // returns the element like it should.
Not sure why the dot notation method doesn’t work in the first case.
Why does this happen?
My guess (because you didn’t specify the element type) is the element normally does not have a
nameattribute, so setting the DOM property like that won’t work.For example, setting the
nameproperty on aninputelement will work. Setting it on adivwill not.It will work, however, with
setAttribute().jsFiddle.