использовать массив в качестве идентификатора в javascript

#javascript #arrays

#javascript #массивы

Вопрос:

Я этот массив:

 arrayHAY["rat","cat","hat","mat","bat"];
  

И эти элементы:

 <div id="rat"></div>
<div id="cat"></div>
<div id="hat"></div>
<div id="mat"></div>
<div id="bat"></div>
  

Мой вопрос в том, как я могу использовать массив для перебора каждого из этих элементов и что-то с ним делать?

Что-то вроде этого:

 var nameOfarray = document.getElementByID('.arrayHAY[i].value')
var lengthOfArray = nameOfarray.length;                            
for(var i=0; i<lengthOfArray; i  ) {
// do something
}
  

Спасибо.

Комментарии:

1. массив JS не имеет абсолютно никакого отношения к DOM. Это просто переменная JS, которая содержит объект array. Нет «id» или «getElementById», которые вы делаете, чтобы «найти» эту переменную, это просто переменная. Как только у вас есть массив, он похож на любой другой массив, который вы хотите использовать в цикле.

Ответ №1:

Вам нужно что-то вроде этого:

 for (var i = 0, l = arrayHAY.length; i < l;   i) {
  var selected = document.getElementById(arrayHAY[i]);
  // your own code would be here
}
  

Это приведет к циклу и выбору каждого элемента.

Ответ №2:

Вы могли бы сделать это:

 var arrayHAY = ["rat","cat","hat","mat","bat"];

for (var i = 0, l = arrayHAY.length; i < l;   i) {
  var elem = document.getElementById(arrayHAY[i]);
  // now do your stuff
}
  

Ответ №3:

Вы близки. Попытайтесь понять, что вы делаете. У вас есть id s элементов в массиве. Вам нужно получить элементы, соответствующие id , поэтому используйте каждый элемент в качестве идентификатора document.getElementById .

 var lengthOfArray = nameOfarray.length;                            
for(var i=0; i<lengthOfArray; i  ) {
    var element = document.getElementByID(arrayHAY[i].value) //No quotes here
}
  

Ответ №4:

В настоящее время (с ECMAScript 5) вы можете сделать:

 ['rat', 'cat', 'hat', 'mat', 'bat'].forEach(function(id) {
    var element = this.getElementById(id);
    console.log('Selected Element: ', element);
}, document);
  

Ответ №5:

 for( var i=0; i<arrayHay.length; i   )
{

    document.getElementsById(arrayHay[i]).value; // access value from outside

}