jQuery - 遍历 DOM 中的所有类,按间隔分配条件
jQuery - iterating over all the classes in the DOM, assigning a condition by intervals
好的,所以我正在尝试使用jQuery(或Javascript作为一个整体,对我来说无关紧要。但没有其他Javascript框架)来迭代文档中的给定类。
我想知道,是否有一种特定于jQuery的方法,或者我应该使用Javascript?
基本上有一个类的 X 实例。我想遍历 DOM 中类的所有实例,并且随着每个增量,为该元素分配不同的颜色(可能通过在div 中插入样式标签,这样原始 CSS 就不会成为问题),最多总共五种颜色,此时下一次迭代将被赋予第一种颜色, 游行继续,等等。
伪代码:
for x in elements
elements[0].inserttag('style = "#color0"')
elements[1].inserttag('style = "#color1"')
elements[2].inserttag('style = "#color2"')
elements[3].inserttag('style = "#color3"')
elements[4].inserttag('style = "#color4"')
elements[5].inserttag('style = "#color5"')
Repeat for elements[6] and beyond, starting with color0
var colors = ['color0', 'color1', 'color2', 'color3', 'color4', 'color5'];
$('.your_class').each(function(i) {
$(this).css('color', colors[i % colors.length]);
});
要处理间隔:
var i = 0,
colors = ['red', 'blue', 'orange', 'green', 'black'];
function setColor() {
$('.your_class').eq(i).css('color', colors[i % colors.length]);
i++;
setTimeout(function() {
setColor();
}, 2000)
}
setColor();
演示
您可以尝试在数组中缓存颜色,然后使用 .each()
循环访问每个元素:
var colors = ['red','white','blue','green','yellow'];
$('.someclass').each(function(i,v) {
// i is the iteration count,
$(this).css('color', colors[i % colors.length]);
});
。或类似的东西。
如果要迭代对象的类名是"foo",那么您可以使用以下jQuery:
var colors = ['color0', 'color1', 'color2', 'color3', 'color4', 'color5'];
$(".foo").each(function(index, el) {
el.style.color = colors[index % colors.length];
});
在普通的javascript中,这也很容易:
var colors = ['color0', 'color1', 'color2', 'color3', 'color4', 'color5'];
var items = document.getElementsByClassName('foo');
for (var i = 0, len = items.length; i < len; i++) {
items[i].style.color = colors[i % colors.length];
}
如果您尝试在某个时间间隔内定期应用这些颜色值(您的问题在此部分不清楚),那么您可以像这样操作:
var colors = ['color0', 'color1', 'color2', 'color3', 'color4', 'color5'];
var items = document.getElementsByClassName('foo');
var i = 0;
function nextColor() {
if (i < items.length) {
items[i].style.color = colors[i % colors.length];
i++;
setTimeout(nextColor, 2000);
}
}
nextColor();
var colors = ['red', 'blue', 'orange', 'green', 'black'];
var index = 0;
function doIt(){
$('.foo').css('color', colors[index++ % colors.length]);
}
setInterval(doIt, 500);
现场演示
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 在循环中分配json值时,值被覆盖
- 动态分配GA增强型电子商务跟踪器
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- Jslint 错误:需要条件表达式,而是看到分配
- 将JavaScript函数分配给提交按钮,该按钮应有条件执行
- 循环遍历数组匹配变量并分配要执行的条件
- jQuery - 遍历 DOM 中的所有类,按间隔分配条件
- 如何根据条件在输入上分配 ng 模型中的变量
- 若条件为true,则将类分配给子级
- JS-使用||分配条件变量的区别或优势
- 给kineticjs对象分配两个补间,但有条件地只执行一个
- 我可以在jquery中根据条件分配函数吗?
- 分配的处理成本vs条件
- 如何在meteor上创建条件,将admin角色分配给新用户
- 在Jade中有条件地在body上分配一个类
- 仅当 JavaScript 中的三元运算符中的条件为 true 时才分配
- 根据条件为javascript变量分配模型值(在Razor中)
- 如何使用条件重新分配和声明新变量
- 为数组中的元素分配条件/类别