DOM 要素の attributes などは、キーでアクセスできる通常の Object ではなく、NamedNodeMap という配列のようなデータ構造になっています。
まず、配列のようにインデックスでのアクセス。小要素は name
と value
というプロパティを持っています。
for (var i = 0; i < elem.attributes.length; i++) {
var node = elem.attributes[i],
key = node.name,
value = node.value;
}
それからキー名でのアクセス。Chrome なら
var title = elem.attributes['title'].value;
または
var title = elem.attributes.title.value;
とできますが、IE ではエラーが出ます。getNamedItem()
を使うのが正しいのでした。
var title = elem.attributes.getNamedItem('title').value;