2013-07-19 80 views
1

我想使用jquery根据变量的值(i)从<li>元素添加和删除类。使用jquery修改HTML元素

这里是什么,我至今http://jsfiddle.net/LX8yM/

点击“+”增量i 1做过的jsfiddle(我与Chrome的JavaScript控制台检查这一点)。

应该能够点击“+”,并且.active类应相应地从中删除并添加到<li>元素。

...我可以拿到第一<li>元接受类,这一切......

+0

你所有的代码都是增量i。 if语句在DOM准备就绪时运行一次。 – j08691

回答

6

无需if语句:

$(document).ready(function(){ 
    $('#add').click(function(){ 
    $('.numbers .active').removeClass('active').next().addClass('active'); 
    }); 
}); 

jsfiddle

请注意,我向第一个列表项中添加了“活动”类。如果您无法控制标记,则可以通过JS始终执行此操作。

+0

非常聪明。如果你有一个项目列表,这将是更好的解决方案。 – Martijn

+0

@Nick +1这就是为什么我喜欢SO,在那里人们提供优化的解决方案:) – Praveen

+0

好的解决方案,我可以使用相同的想法来减少'我',从而扭转过程?也许'.prev()'? – proPhet

3

你的if..else ..挂在document.ready。将增量包裹在函数中并分别调用它。

$(document).ready(function(){  
    //variable 
    var i = 1; 

    //if statments 
    function incre(i){ // wrap into a function and process it 
    if(i == 1){ 
     $('#one').addClass('active'); 
     $('#two').removeClass('active'); 
     $('#three').removeClass('active'); 
    }else if(i == 2){ 
     $('#one').removeClass('active'); 
     $('#two').addClass('active'); 
     $('#three').removeClass('active'); 
    }else if(i == 3){ 
     $('#one').removeClass('active'); 
     $('#two').removeClass('active'); 
     $('#three').addClass('active'); 
    } 
    } 

    //change i 
    $('#add').click(function(){ 
     incre(i++); // pass it as a parameter 
    }); 

}); 

Working JSFiddle

2

这会更容易些:

$(document).ready(function(){ 
    var i = 0; // set the first value 
    $('#something').click(function(){ 
    i++; // every click this gets one higher. 

    // First remove class, wherever it is: 
    $('.classname').removeClass('classname'); 
     // Now add where you need it 
     if(i==1){ 
     $('#one').addClass('classname'); 
     } else if(i==2){ 
     $('#two').addClass('classname'); 
     } else if(i==3){ 
     $('#three').addClass('classname'); 
     } 
    }): 
}); 
+0

如果你检查他的代码,他的if .. else代码挂在'document.ready' – Praveen

+0

这就是为什么我在编辑后给了w更多的扩展示例:) – Martijn

+0

@Martijn会在文档加载时给你添加类减去标记给我吧.... –

0

看到这段代码。最初,您必须将课程添加到一个

$(document).ready(function(){ 

    //variable 
    var i = 1; 
    $('#one').addClass('active'); 

    //if statments 


    //change i 
    $('#add').click(function(){ 
     i++; 
     if(i == 1){ 
     $('#one').addClass('active'); 
     $('#two').removeClass('active'); 
     $('#three').removeClass('active'); 
    }else if(i == 2){ 
     $('#one').removeClass('active'); 
     $('#two').addClass('active'); 
     $('#three').removeClass('active'); 
    }else if(i == 3){ 
     $('#one').removeClass('active'); 
     $('#two').removeClass('active'); 
     $('#three').addClass('active'); 
    } 
    }); 

});