不改变布局,怎样用js实现背景效果??li是循环输出的,两个li一行,再隔行换背景色 5

<divstyle="width:500px;margin:0pxauto;"><ulstyle="width:500px;float:left;"><listyle="... <div style="width:500px; margin:0px auto;">
<ul style="width:500px; float:left;">
<li style="width:250px; float:left; background:#eee;"></li>
<li style="width:250px; float:left; background:#eee;"></li>
<li style="width:250px; float:left;"></li>
<li style="width:250px; float:left;"></li>
<li style="width:250px; float:left; background:#eee;"></li>
<li style="width:250px; float:left; background:#eee;"></li>
<li style="width:250px; float:left;"></li>
<li style="width:250px; float:left;"></li>
<li style="width:250px; float:left; background:#eee;"></li>
<li style="width:250px; float:left; background:#eee;"></li>
<li style="width:250px; float:left;"></li>
<li style="width:250px; float:left;"></li>
</ul>
</div>
展开
 我来答
精神小伙喵
2013-05-29 · TA获得超过684个赞
知道小有建树答主
回答量:746
采纳率:50%
帮助的人:729万
展开全部

下面是效果

 

原理就是循环出0,1,4,5,8,9,12,13.。。。。这些位置的li,再设置样式,

循环逻辑是i*4   及i*4+1  

最好是在n>a.length的时候,break一下

jinyc007
推荐于2017-12-19 · TA获得超过934个赞
知道小有建树答主
回答量:398
采纳率:75%
帮助的人:477万
展开全部

用jquery:

$(function(){
    $('ul li').each(function(idx){
        var idx = idx + 1;
        // 奇数行
        if( Math.ceil( idx / 2 ) % 2 ) 
            $(this).css({'backgroundColor':'#ccc'});
        // 偶数行
        else
            $(this).css({'backgroundColor':'#999'});
    });
});

不用jquery

window.onload=function() {
    var uls = document.getElementsByTagName('ul'),
        ul=uls[0], // 假设文档里多个 ul 元素,要操作的是第一个 ul,
        lis = ul.children,
        len=lis.length,
        idx = 0,
        e = null;
    for(var i=0; i<len; i++) {
        idx = i + 1;
        e = lis[i];
        // 奇数行
        if( Math.ceil( idx / 2 ) % 2 ) 
            e.style.backgroundColor='#ccc';
        // 偶数行
        else
            e.style.backgroundColor='#999';
    }
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
买修CZ
2013-05-29
知道答主
回答量:6
采纳率:0%
帮助的人:3.3万
展开全部
给你的ul设置个id如: id="lilist"
将以下代码加入
<script>
window.onload=function(){
var list = document.getElementById("lilist").getElementsByTagName("li");
var len = list.length;
var i = 0;
while(i<len){
list[i].style.background = "#eee";
list[i+1].style.background = "#eee";
list[i+2].style.background = "#000";
list[i+3].style.background = "#000";
i=i+4;
}
}
</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
轮回路上的人
2013-05-29 · 超过11用户采纳过TA的回答
知道答主
回答量:163
采纳率:0%
帮助的人:50.1万
展开全部
跟你来简单点的:
把你要改变颜色的li标签里面加一个class=“a”和class=“b”,因为你有两个颜色嘛,每个颜色加一个, 所以弄个a和b,然后得到所有为a的标签 如:$("#li" .a"); 最后你就可以设置这个便签的任何样式了,
b的话 也按这个步骤来吧

希望能帮助你 ,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
abccccaf
2017-12-19 · TA获得超过845个赞
知道小有建树答主
回答量:912
采纳率:86%
帮助的人:262万
展开全部
$('li:even').css('background', 'red');  // 获取偶数位置的li标签
$('li:odd').css('background', 'blue');  // 获取奇数位置的li标签
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式