我正在尝试将函数列表简化为单个函数。基本上我有 6 个 div,每个都有 id #slide_,其中下划线是 1-6 的数字(#slide1、#slide2 等)。
我的函数是这样的:
if ($("#slide1").hasClass('active')) {});
每个 #slide_ id 都有一个 if 语句。什么是简化此操作的最佳方法,以便我只有一个函数而不是 6 个不同的 if 语句?
最佳答案
把那个笨蛋循环起来!首先,应用一个类(我使用 .slide
作为示例):
var $slides = $('.slide');
或者(如果您不能修改 HTML)您可以使用 @j08691 引用的“开头为”选择器:
var $slides = $('[id^="slide"]');
然后对该集合应用for
循环:
for(var i = $slides.length; i--;){
if($slides.eq(i).hasClass('active')){
// do your magic
}
}
或者你可以走得更远,如果你对同一个对象做某事,只需过滤记录集:
$slides.filter(function(){
return $(this).hasClass('active');
}).applyMethod();
如果您要修改幻灯片以外的对象,请使用循环,否则如果您要修改幻灯片本身,请使用过滤器。无论哪种方式,它都应该有效。
关于javascript - Jquery 简化与具有相似字符的多个 id 相关的多个 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25452544/