我有以下代码..
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");
}
在这种情况下,如果有人选择Bus to alternate或Walk to alternate,它将分别显示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", "");
答案 0 :(得分:1)
您可以尝试这样的事情:
if(opt == "Bus to alternate" || opt == "Walk to alternate" ){
$('[id^="altad"]').css("display", "");
}
答案 1 :(得分: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对象。
答案 2 :(得分: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", "");
}
}
Saludos;)