如何通过循环获取元素,html?

时间:2012-11-21 20:58:28

标签: javascript jquery html css html5

我想做类似的事情:

var i=0;

while(i<20)
{
  var temp= document.getElementById(''+20);
  $(temp).hide();
  i++;
}

我能这样做吗?我试过了,但没办法。

5 个答案:

答案 0 :(得分:1)

是的,例如:

for (var i=0; i < 20; i++) {
  var temp = document.getElementById(i);
  console.log(temp);
}

工作样本:http://jsfiddle.net/bqF9T/

但正如评论中所述,如果HTML无效,那么在{* 3}}中可能无法在其他浏览器中使用Chrome浏览器。

答案 1 :(得分:0)

试试这个:

var i = 0;

while(i < 20){
    var temp = document.getElementById('Elid_'+i);
    // DO STUFF
    i++;
}

你有一个无限循环(我总是小于20) 你也使用静态数字20代替i。或多或少的动态数字 而作为其他地方,ID不能仅以数字开头......

答案 2 :(得分:0)

您实际上创建了一个无限循环。由于你没有改变i的值,它将永远为0,因此总是&lt; 20。

您还应该提供不仅仅是数字的元素ID(因为它不起作用)。

<div id='something1'></div>

尝试使用for循环,如下所示:

// Wait for the page to finish loading.
window.onload = function() {
    // Run your loop.
    for(var i = 0; i < 20; i++) {
        var temp = document.getElementById('something' + i);

        // Do stuff with temp.
    }
}

// Or, with jQuery
$(document).ready(function() {
    // Run your loop.
    for(var i = 0; i < 20; i++) {
        var $temp = $('#something' + i);

        $temp.hide();

        // Or, if you're only hiding...
        $('#something' + 1).hide();
    }
});

答案 3 :(得分:0)

ID's can't begin with a number,所以你必须在计算之前得到一些东西。

  

ID和NAME令牌必须以字母([A-Za-z])开头,可能是   后跟任意数量的字母,数字([0-9]),连字符(“ - ”),   下划线(“_”),冒号(“:”)和句点(“。”)。

因此,在其前面添加其他内容以使其有效,我选择了“example_”。

另一个问题是你总是试图在ID中获得带有“20”的元素。你想得到所有这些,所以你必须使用你的循环计数器i

另请注意,计数器从0到19(当i = 20i<20为FALSE时),请记住这一点,以便它与您的标记匹配。

JS:

var i=0;

while(i<20)
{
  var temp= document.getElementById('element_' + i);
  $(temp).hide();
  i++;
}

您的标记看起来像:

<div id="element_0">first</div>
<div id="element_1">second</div>
<div id="element_2">foo</div>
...
<div id="element_19">bar</div>

答案 4 :(得分:0)

如果你有一个id =“htmlID1-20”的元素集合,你可以将代码改为这样的东西:

var i = 20
  , elems = [] // empty array to keep the elements
while(i--){  //this trick reduces the variable i by 1 each time the loop runs, stopping at 0
    elems.push(document.getElementById("htmlID"+i)) //collect the dom elements and push a refrance to it in the array
}
console.log(elems)

在循环中创建变量或函数不是重要的。