getElementsByName の IE と Safari の挙動
HTMLで
sample
の様な”target”という名前を付けたタグを用意(複数)して、JavaScriptのDOMでgetElementsByName(“target”)で一括検索しようとしました。
結果は、Safari(Mac)では一括検索できたものの、IE(Win)では要素0件となってしまいました。どうやらIEではgetElementsByNameの検索対象は等の一部のタグだということです。
そのため、divタグをまとめてとってきて name=”target”のものだけ、目的の処理に回るようにしました。これで等価のはず。
var divs = document.getElementsByTagName(“div”);
for(var i=0; i
if(divs[i].getAttribute(“name”) != “target”){
continue;
}
//・・・目的の処理・・・
}
ここでまた1つ、IEでは「if(divs[i].name != “target”){」でよかったのですが、Safariでは「divs[i].name」がundefinedでした。