javascript - Jquery 简化与具有相似字符的多个 id 相关的多个 if 语句

标签 javascript jquery if-statement

我正在尝试将函数列表简化为单个函数。基本上我有 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/

相关文章:

javascript - 通过链接在 div 内滚动的问题

JavaScript:css 切换到暗模式

jquery - jQuery中的鼠标悬停音频

java - 如果返回无法访问的代码则嵌套

javascript - 在 API 调用期间禁用按钮

javascript - Jquery UI 多列自动完成下拉列表在鼠标悬停时消失

javascript - 单击元素符号导航后设置间隔不起作用

javascript - JQuery:查找元素位置

r - 提取向量的位置和值

java - 无法让 charAt(0) 工作