用jquery依次给列表li添加class=on

代码如下:<divid=123><ul><li>我要加样式</li><li>我要加样式</li><li>我要加样式</li><li>我要加样式</li><li>我要加样式... 代码如下:
<div id=123>
<ul>
<li>我要加样式</li>
<li>我要加样式</li>
<li>我要加样式</li>
<li>我要加样式</li>
<li>我要加样式</li>
</ul>
</div>
我要依次给这几个li添加class=on ,是依次哦,也就是说同一时刻,只能有一个li被修改,而且要求可以控制指针移动的速度。
多谢了,看了一个遍jq教程也没搜到。
展开
 我来答
luffy1201
2014-08-17 · TA获得超过1524个赞
知道小有建树答主
回答量:401
采纳率:0%
帮助的人:588万
展开全部
给ul和li加id

<ul id='abc'>
<li id='abc_1'>我要加样式</li>
<li id='abc_2'>我要加样式</li>
<li id='abc_3'>我要加样式</li>
....

这样,然后获取li的个数var len = $("#abc li").length;

然后做个定时器,里面做逻辑,加样式~~~

var temp = 1;
var t=setInterval(function(){
if(i == len+1){
setInterval(t);
}
$("#abc_"+i).addClass('on');
i++;
}, 1000);

大概这样简单写了下,没做实例测,你再测测,有需要自己再完善下~~~
追问
多谢
旁明煦0IB
推荐于2017-09-16 · TA获得超过352个赞
知道小有建树答主
回答量:245
采纳率:100%
帮助的人:104万
展开全部
var timeout = 1000; //每隔1000ms
var index = 0;
var addClassOn;
addClassOn = setInterval(function(){
    if(index >= $("ul li").length){
        clearInterval(addClassOn);
        addClassOn = null;
    }else {
        $("ul li").eq(index++).addClass("on");
    }
},timeout);
更多追问追答
追问
谢谢,你的答案可以实现依次添加class=on,然而不是每一时刻只有一个li添加这个class=on,执行到最后是每一个li都有了class=on这个类,而且不能循环添加,请做修改下好吗
追答
//只需要稍稍改动下就行了
var timeout = 1000; //每隔1000ms
var index = 0;
var addClassOn;
addClassOn = setInterval(function(){
    if(index >= $("ul li").length){
        index = 0; //此处改动,可以无限循环 1 2 3 1 2 3 1 2 3  。。。
    }else {
        $("ul li").eq(index++).addClass("on").siblings().removeClass("on");//改动处
    }
},timeout);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式