Я объединил методы getElementsByTagName и getAttribute, чтобы получить атрибут 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] делает в этой строке кода? Является ли это переменной 'counter', которую я объявил в цикле for, которая увеличивается на каждой итерации? И является ли [i] представителем индекса массива, возвращаемого функцией getElementsByTagName?

3
user1554264 24 Янв 2013 в 18:19

3 ответа

Да ты прав. paras на самом деле является объектом массива всех p-тегов в DOM, содержащих все конкретные свойства

Вы можете запустить инструменты разработчика Chrome и убедиться в этом сами

2
Arshabh Agarwal 24 Янв 2013 в 14:22

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
1
Erick Ribeiro 24 Янв 2013 в 16:25

Как уже сказал Джеймс, да и да.

.getElementsByTagName возвращает массив. Вы можете получить доступ к каждому элементу в этом массиве, используя индекс, например:

paras[0]

Доступ к первому элементу (индексы начинаются с 0 в JavaScript - но будьте осторожны, некоторые языки начинаются с 1).

paras[1]

Доступ ко второму элементу и т. Д.

Это обычный шаблон для использования цикла for для перебора всех элементов в массиве, чтобы вы могли что-то сделать с каждым элементом. Так:

paras[i]

Доступ к i -ому элементу в вашем массиве.

2
Matt Burland 24 Янв 2013 в 14:23