Jquery多个操作一个if

Jquery Multiple actions one if

本文关键字:一个 if 操作 Jquery      更新时间:2023-09-26

我有以下代码。。

    function showNext(opt)  {
        takeAway();
        if(opt == "Picked Up") $("#pickedup").css("display", "");
        if(opt == "Bus to alternate") $("#altad2").css("display", "");
        if(opt == "Walk to alternate") $("#altad1").css("display", "");
    }

function takeAway(){
    $("#pickedup").css("display", "none");
    $("#altad2").css("display", "none");
    $("#altad1").css("display", "none");
}

在这种情况下,如果有人选择公共汽车备降或步行备降,它将分别显示祭坛2和祭坛1

但那不是我想要的。。

我想要的是,如果有人选择公交车备降,它会同时显示祭坛2和祭坛1,而如果有人要选择步行备降,情况也是一样的。

有像这样简单的方法吗

 if(opt == "Bus to alternate") $("#altad2").css("display", "") and $("#altad1").css("display", "");
    if(opt == "Walk to alternate") $("#altad1").css("display", "") and $("#altad2").css("display", "");

更好的方法是创建一个映射,这将减少代码大小并变得更快。

function showNext(opt)  {
        takeAway()
      var optMap={
             "Picked Up":"#pickedup",
             "Bus to alternate":"#altad2,#altad1",
             "Walk to alternate":"#altad2,#altad1",
              }
           $(optMap[opt]).css("display","") ;       
}
function takeAway(){
    $("#pickedup,#altad2,#altad1").css("display", "none");
 }

将一个选择器中的所有id以逗号分隔。在这种情况下,它将只创建一个jquery对象。

您可以尝试以下操作:

if(opt == "Bus to alternate" || opt == "Walk to alternate" ){
    $('[id^="altad"]').css("display", "");
}

试试这个:

function showNext(opt)    {
takeAway();
if(opt == "Picked Up") $("#pickedup").css("display", "");
if(opt == "Bus to alternate") 
{
 $("#altad2").css("display", "");
 $("#altad1").css("display", "");
}
if(opt == "Walk to alternate") 
{
 $("#altad2").css("display", "");
 $("#altad1").css("display", "");
} 

}

Saludos;)