その際、謎現象に遭遇したのであメログ。
JavaScriptでHTML要素をgetElementsByTagName( )で取得し
var elements = document.getElementsByTagName( 'tr');の様にfor inループで回すと、何故か
for( var i in elements)
{
console.log( i);
}
0
1
2
3
︙
item
という結果が出力されます。
何やねんitemって…。
ちなみに
var elements = document.getElementsByTagName( 'tr');という様にインクリメントするforやと発生しません。
for( var i = 0; i < elements.length; i++)
{
console.log( i);
}
なんかJavaScriptのfor...inループって癖が有りますね。
どないなってるんかなぁ…と思って調べたら
こういう仕様でした。
forループとfor...inループとfor...ofループ、それぞれ微妙にちゃう様です。
なので今回は
for( var element of document.getElementsByTagName( 'tr'))for...ofループにし様としたんですが、for...ofはスマホのデフォルトブラウザで動かなかったので、諦めて普通のforループに戻しましたとさ…。
{
console.log( element);
}
0 件のコメント:
コメントを投稿
つっこみ