JavaScript if 语句

标签 javascript jquery function if-statement

我正在创建一个触发不同函数的 if 语句。有没有更好的方法可以实现此功能?

$("#slide01-bttn").click(function() {

    if ($("#slide-1").is('#featured_ul li:nth-child(1)'))
    {
    alert("First Child");
    moveSlideFirstChild();
    }

    if ($("#slide-1").is('#featured_ul li:nth-child(2)'))
    {
    alert("Second Child");
    moveSlideSecondChild();
    }

    if ($("#slide-1").is('#featured_ul li:nth-child(3)'))
    {
    alert("Third Child");
    moveSlideThirdChild();
    }

    if ($("#slide-1").is('#featured_ul li:nth-child(4)'))
    {
    alert("Fourth Child");
    moveSlideFourthChild();
    }
});

最佳答案

你当然可以将你的代码简化成这样

var pos = $("#slide-1").prevAll().length;
switch (pos)
{
    case 0:
        ...
        break;
    case 1:
        ...
        break;
    ...
    default:
        ...
        break;
}

但似乎您应该优化移动子元素的方法,使其只有一个函数而不是N,这样您就可以执行一个简单的调用:

var elem = $("#slide-1");

// pass position AND element because you'll likely use it inside
moveSlideChild(elem.prevAll().length, elem);

您当然可以只传入元素并在其中获取位置。并保存一些元素选择,因为您正在执行许多 jQuery 元素选择器调用。这将使您的代码显着更快并得到优化。

关于JavaScript if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12602985/

相关文章:

javascript - Angular Firestore : Check if data exist and update a global variable based on that

c - 函数中的指针问题

JavaScript:蛇梯游戏中的问题

javascript - 我需要一个脚本来在开关按钮打开时复制 <img> 标签,并在开关按钮关闭时删除 <img> 标签

javascript - 使用事件(作为函数)v4 的问题

javascript - setInterval javascript 中的文本几分钟后开始闪烁

javascript - 使用 jQuery 对插入的元素进行动画处理

javascript - meteor - 铁路由器不等待 onBeforeAction Hook 中的订阅数据

javascript - 更改 boolean 值 (Jquery/Javascript)

Javascript 性能优化