下記のソースでforin文で宣言した変数liに添え字を与えるとHTMLCollectionが持つメンバであるlengthやitem、namedItemの添え字目の文字が返ってくる現象に理解が及ばず質問しました。
なぜ、liに添え字を与えると添え字目の文字が返ってくるのでしょうか。
html
1<ulclass="cf"> 2<li>1</li><!-- 300px--> 3<li>2</li> 4<li>3</li> 5</ul>
javascript
1var slider_li = document.getElementsByTagName("li"); 2console.log("li",document.getElementsByTagName("li")); 3 4for(var li in slider_li) {//slider_li内のプロパティ名を代入している。 5 6 if(typeof(count) === "undefined") { 7 var count= 0; 8 } else if(count == 0) { 9 count += 1; 10 } else { 11 count += 1; 12 } 13 14 //スライダー(li)の大きさを取得。offsetWidthは、ボーダーとパディングを含んでいる。 15 var slider_li_size = slider_li[count].offsetWidth; 16 17 console.log("★count回数",count,"★プロパティ名",li[count],"★slider_li",slider_li); 18} 19 20//★count回数 0 ★プロパティ 0 ★slider_li [object HTMLCollection] 21//★count回数 1 ★プロパティ undefined ★slider_li [object HTMLCollection] 22//★count回数 2 ★プロパティ undefined ★slider_li [object HTMLCollection] 23 24//lengthプロパティには、li[3]という処理がなされ、lengthという文字の三文字目にあたる「g」が返ってきた。 25//★count回数 3 ★プロパティ g ★slider_li [object HTMLCollection] 26//item()には、li[4]という処理がなされ、itemという文字の四文字目を探したが、文字数を超過したのでundefinedが返ってきた。 27//★count回数 4 ★プロパティ undefined ★slider_li [object HTMLCollection] 28//namedItem()には、li[5]という処理がなされ、namedItemという文字の五文字目にあたる「I」が返ってきた。 29//★count回数 5 ★プロパティ I ★slider_li [object HTMLCollection]
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/09 11:45