Javascript 遍历多个div id
我正在尝试制作一个显示90个单独div框的站点, 然后提示一个年龄号码。然后使用该答案在答案框中阴影化90个答案框中的数量 如何让最后一个for循环中的div遍历divJavascript 遍历多个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 =
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"
});