Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery-如何在使用show()或hide()时对多个变量进行分组?_Jquery - Fatal编程技术网

jQuery-如何在使用show()或hide()时对多个变量进行分组?

jQuery-如何在使用show()或hide()时对多个变量进行分组?,jquery,Jquery,如何使用sigle show()或hide()将以下所有变量分组,而不是对每个变量单独调用?谢谢 var alertsLink = "alertsLink"; var alertsLinkId = $j("#" + alertsLink); var modifyLink = "modifySearch"; var events = $j("#eventsPanel"); var alerts = $j("#alertsPanel"); var results = $j("div.results"

如何使用sigle show()或hide()将以下所有变量分组,而不是对每个变量单独调用?谢谢

var alertsLink = "alertsLink";
var alertsLinkId = $j("#" + alertsLink);
var modifyLink = "modifySearch";
var events = $j("#eventsPanel");
var alerts = $j("#alertsPanel");
var results = $j("div.results");

if(id == eventsLink){
    events.show();
    alerts.hide();
    results.hide();
    eventsLinkId.hide();
    alertsLinkId.show();
  }else if(id == alertsLink){
    events.hide();
    alerts.show();
    results.hide();
    alertsLinkId.hide();
    eventsLinkId.show();
  }else if(id != modifyLink){
    events.hide();
    alerts.hide();
    results.show();
    alertsLinkId.show();
    eventsLinkId.show();
  }
}
试试这个,jQuery支持:


您可以组合选择器,如下所示:

$j("div.results, #alertsPanel")…

你也可以这样做:

$j('#eventsPanel, #alertsLink, #alertsPanel, div.results).hide();
switch (id) 
{ 
case 'eventsLink': $j("#eventsPanel, #alertsLink").show(); break;
case 'alertsLink': $j("#alertsPanel").show(); break;
default: $j("div.results, #alertsLink").show(); break;
}

保持if/else也起作用;)

如果您想继续使用变量,而不是在代码中乱放大量神奇的字符串,那么您可以:

events.add(alertsLinkId).show();
alerts.add(results).add(eventsLinkId).hide();

我不想硬编码每一行,因为有多个条件要处理。如果可能的话,只是想知道如何使用参数而不是选择器打电话。谢谢,但是使用Box9的建议,它已经减少到只有两行代码,而且更干净了。:)
$j('#eventsPanel, #alertsLink, #alertsPanel, div.results).hide();
switch (id) 
{ 
case 'eventsLink': $j("#eventsPanel, #alertsLink").show(); break;
case 'alertsLink': $j("#alertsPanel").show(); break;
default: $j("div.results, #alertsLink").show(); break;
}
events.add(alertsLinkId).show();
alerts.add(results).add(eventsLinkId).hide();