0

我有以下代码..

    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");
}

在这种情况下,如果有人选择巴士交替或步行交替,它将分别显示 altad2 和 altad1

但这不是我想要的..

我想要的是,如果有人选择公共汽车来替代它会同时显示 altad2 和 altad1​​,如果有人选择步行来替代,它也会显示相同的内容。

有没有一种简单的方法可以做类似的事情

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

3 回答 3

1

你可以尝试这样的事情:

if(opt == "Bus to alternate" || opt == "Walk to alternate" ){
    $('[id^="altad"]').css("display", "");
}
于 2013-02-21T17:49:16.263 回答
1

更好的方法是创建一个地图,它将减少代码大小并变得更快。

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 对象。

于 2013-02-21T17:57:43.993 回答
0

试试这个:

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", "");

} 


}

萨卢多斯 ;)

于 2013-02-21T17:49:27.530 回答