如果一组li应用了特定的类,我正在尝试将一个类添加到span中。
李。完成
李
李。完成
李
李。完成
等等。
span #完成
我尝试在span中添加一个"active“类,如果其中4个li的类是"complete”,我尝试了以下方法,并且我可以让click事件工作,但不能让if语句工作,这是否可能或有效呢?
$(function(){
$("li").click(function(){
$(this).addClass("complete");
});
if($("li").hasClass("complete")){
$("#done").addClass("active");
};
});我一直在寻找一种可能计算Ive的方法。li.complete是用dom完成的,然后addClass反对它,但没有太多的运气
谢谢
发布于 2011-06-21 05:09:32
您当前的代码不会有两个问题:
if($("li").hasClass("complete")){
$("#done").addClass("active");
};在绑定click()处理程序之后,而不是在实际单击按钮之后。此外,您没有计算已经完成的li的数量。
一种选择是这样的,每次处理点击时,计算类完成的li的数量:
$(function(){
$("li").click(function(){
$(this).addClass("complete");
if ($("li.complete").length >= 4) {
$("#done").addClass("active");
}
});
});你也可以边走边记流水账...
$(function(){
var activeCount = 0;
$("li").click(function(){
$(this).addClass("complete");
activeCount = activeCount + 1;
if (activeCount >= 4) {
$("#done").addClass("active");
}
});
});但是,如果您希望能够取消选择项,这将使您的代码变得更加复杂。
发布于 2011-06-21 05:09:06
试试这个:
$(function(){
$("li").click(function(){
$(this).addClass("complete");
if($("li.complete").length >= 4){
$("#done").addClass("active");
};
});
});发布于 2011-06-21 05:09:10
如果我正确理解了您的问题,并且您希望在4个li元素都有特定类的情况下将一个类应用于一个元素,您可以这样做:
if($("li.complete").length == 4) {
$("#done").addClass("active");
}请看它在here中工作的示例。
https://stackoverflow.com/questions/6417501
复制相似问题