Abs*_*rit 3 each jquery loops selector
使用jquery,我想循环所有具有“item”类的元素,并根据元素的索引应用不同的背景颜色。
mapcolor 是一个颜色数组(长度 = 具有“item”类的元素数)
$.each($(".item"), function(i,e){
$("#"+e).css("background-color",mapcolor[i]);
});
Run Code Online (Sandbox Code Playgroud)
$("#"+e)选择器没有按预期工作,也没有$("#"+e.id)......我的选择器有问题。任何的想法?
改用.each()方法,你必须在上下文中$(this):
$(".item").each(function(i){
$(this).css("background-color",mapcolor[i]);
});
Run Code Online (Sandbox Code Playgroud)
然而,更好的方法是:
$(".item").css("background-color",function(){
return mapcolor[$(this).index()];
});
Run Code Online (Sandbox Code Playgroud)
使用.css()方法并传递一个回调函数来返回值。
测试如下:
$(".item").each(function(i){
$(this).css("background-color",mapcolor[i]);
});
Run Code Online (Sandbox Code Playgroud)
$(".item").css("background-color",function(){
return mapcolor[$(this).index()];
});
Run Code Online (Sandbox Code Playgroud)
var mapcolor = ['green', 'red', 'yellow'];
$(".item").css("background", function() {
return mapcolor[$(this).index()];
});Run Code Online (Sandbox Code Playgroud)