我有一堆jquery函数,我知道在for循环中会更好用,但每次我尝试设置它时都不起作用。
以下是我想要for循环的内容:
$("episode1").click(
function () {
if ($("#episode2").hasClass('clicked')) {
$("#episode2").removeClass('clicked');
}
else if ($("#episode3").hasClass('clicked')) {
$("#episode3").removeClass('clicked');
}
else if ($("#episode4").hasClass('clicked')) {
$("#episode4").removeClass('clicked');
}
else if ($("#episode5").hasClass('clicked')) {
$("#episode5").removeClass('clicked');
}
else if ($("#episode6").hasClass('clicked')) {
$("#episode6").removeClass('clicked');
}
else if ($("#episode7").hasClass('clicked')) {
$("#episode7").removeClass('clicked');
}
else if ($("#episode8").hasClass('clicked')) {
$("#episode8").removeClass('clicked');
}
else if ($("#rogueone").hasClass('clicked')) {
$("#rogueone").removeClass('clicked');
}
else if ($("#solo").hasClass('clicked')) {
$("#solo").removeClass('clicked');
}
});
如何设置阵列?只是通过id标签?
答案 0 :(得分:1)
除了clicked
之外,给他们一个共同的课程,然后它就是一个简单的
$('.episodescroll.clicked').removeClass('clicked');
如果您想要排除刚刚点击的那个,那么您可以这样做:
$('.episodescroll.clicked').not(this).removeClass('clicked');
否则你可以选择多个元素。
$("#episode2, #episode3, #episode4").removeClass('clicked');
我建议去第一条路线。
答案 1 :(得分:1)
您可以遍历一系列ID,并在找到符合条件的第一个ID时停止。
const ids = ["episode2", "episode3", "episode4", "episode5", "episode6", "episode7", "episode8", "rogueone", "solo"];
$.each(ids, function(i, id) {
if ($("#" + id).hasClass("clicked")) {
$("#" + id).removeClassClass("clicked");
return false;
}
});
从回调函数返回false
结束循环。
但是如果DOM中元素的顺序与数组中的顺序相同,则可以将其简化为:
$(".episodescroll.clicked").not(this).first().removeClass("clicked");