И это то, что происходит в Firefox 33 и Chrome 38:
HTML:
<div class="a">a</div>
Js:
node = e
node.nodeType === 1
node.nodeName === 'DIV'
node.tagName === 'DIV'
node = e.getAttributeNode('class')
node.nodeType === 2
node.nodeName === 'class'
node.tagName === undefined
node = e.childNodes[0]
node.nodeType === 3
node.nodeName === '#text'
node.tagName === undefined
Итак:
- используйте только
nodeType
для получения типа узла: nodeName
разрывы для nodeType === 1
- используйте только
tagName
для nodeType === 1