Javascript 遍历多个div id

Javascript 遍历多个div id,javascript,jquery,Javascript,Jquery,我正在尝试制作一个显示90个单独div框的站点, 然后提示一个年龄号码。然后使用该答案在答案框中阴影化90个答案框中的数量 如何让最后一个for循环中的div遍历div for(i = 0; i < 90; i++) { $('body').append('<div id="div'+ i +'" />'); }; var answer = prompt("Whats your age"); for (i =

我正在尝试制作一个显示90个单独div框的站点, 然后提示一个年龄号码。然后使用该答案在答案框中阴影化90个答案框中的数量

如何让最后一个for循环中的div遍历div

      for(i = 0; i < 90; i++) {
      $('body').append('<div id="div'+ i +'" />');
         };

     var answer = prompt("Whats your age");

      for (i = 0; i <= answer; i += 1){
      // how can i get this $('#div') below to iterate through the divs?
      $('#div').css({ "background-color": "red"});

        }
(i=0;i<90;i++)的
{
$('body')。追加('');
};
var answer=prompt(“您的年龄是多少”);
对于(i=0;i而不是

$('#div').css({ "background-color": "red"});
试一试

看一看

您的代码可能如下所示:

for(i = 0; i < 90; i++) {
  $('body').append('<div class="box" />');
};

var answer = prompt("Whats your age");

$('div.box').slice(0, answer).css({ "background-color": "red"});
(i=0;i<90;i++)的
{
$('body')。追加('');
};
var answer=prompt(“您的年龄是多少”);
$('div.box').slice(0,答案).css({“背景色”:“红色”});

Kartikeya Khoslas的答案是正确的,但您可以重构代码,只生成所需数量的div,并立即设置它们的样式

var answer = prompt("Whats your age");

for (i = 0; i <= answer; i++) {

    $('<div id="div' + i + '" />')
        .appendTo('body')
        .css({
            "background-color": "red"
        });

}
var-answer=prompt(“您的年龄”);

对于(i=0;i另一种解决方法是使用jQuery的filter方法

$("div[id^='div']").filter(function(index) {
  return index < answer;
}).css({
  "background-color": "red"
});
$(“div[id^='div'])。过滤器(函数(索引){
返回指数<答案;
}).css({
“背景色”:“红色”
});
在上面的代码片段中,您将获得所有具有id属性且以div文本开头的
div
。然后您将按索引筛选所有这些结果。只要filter方法内部循环中的当前索引小于已回答的索引,元素将获得红色背景

筛选文档:

将匹配的元素集减少为与选择器或 通过函数的测试

从性能角度来看,这不是最好的答案,因为它在DOM中搜索具有id的div元素。为了获得更好的性能,您应该缩小搜索范围,例如在具有特定id的容器下

最后但并非最不重要的是,这里有一个砰的一声

编辑
差点忘了。您应该为用户的答案引入一些条件检查。例如,如果答案是有效的整数,是否在边界(0,90)内,或者如果操作被取消。

那么您的问题是什么?@AndrewPiper…很乐意帮助您……;)
$("div[id^='div']").filter(function(index) {
  return index < answer;
}).css({
  "background-color": "red"
});