3

getElementsByTagNamegetAttributeメソッドを組み合わせて、ドキュメント内のすべての段落要素の title 属性を取得しました。コードは次のとおりです。

var paras = document.getElementsByTagName('p');
for (i = 0; i < paras.length; i++) {
    console.log(paras[i].getAttribute('title'));
}

特にサポートが必要なコード行は次のとおりです。

console.log(paras[i].getAttribute('title'));

[i]このコード行で何が行われているのでしょうか? forこれは、反復ごとに増加するループで宣言した「カウンター」変数ですか? また、関数[i]によって返される配列のインデックスの代表ですか?getElementsByTagName

4

4 に答える 4

5

ここで重要なのは、 getElementsByTagNameが を返すことNodeListです。

次に、for ループで NodeList (配列と考えることができます) をループします。の値はi0配列の長さ -1 になります。

だからあなたの質問に答えるために。はい、インデックスであり、 indexの要素を求めているiと言うとき。paras[i]i

たとえば、次の html があるとします。

<body>
  <p id="a"></p>
  <p id="b"></p>
  <p id="c"></p>
</body>

呼び出すparas = document.getElementsByTagName("p")と、3 つの要素を持つ配列が返されます。

  • Atparas[0]は、ID a の p になります。

  • Atparas[1]は ID b の p になります。

  • Atparas[2]は ID c の p です。

于 2013-01-24T14:22:01.413 に答える
2

はい、あなたは正しいです。paras は実際には、すべての特定のプロパティを含む DOM 内のすべての p タグの配列オブジェクトです

Chrome 開発者ツールで実行して、自分の目で確かめることができます

于 2013-01-24T14:22:03.860 に答える
1

getElementsByTagName は配列を返します。したがって、インデックスによって各要素にアクセスできます。例:

paras[0]; // first <p> in your document
paras[1]; // second <p> in your document
paras[2]; // third <p> in your document
paras[3]; // fourth <p> in your document
于 2013-01-24T16:25:55.297 に答える