Jquery 切换情况与条件?
我发现了这篇帖子:我正在考虑使用switch case传递多个参数,如下所示:Jquery 切换情况与条件?,jquery,conditional,switch-statement,Jquery,Conditional,Switch Statement,我发现了这篇帖子:我正在考虑使用switch case传递多个参数,如下所示: switch (array($var1, $var2, $var3)) { case array(true, false, false): echo "hello"; break; } 对于这是否是最有效的方法,似乎存在一些疑问。人们的情绪似乎是如果有条件的话更合适。但是,当我看到我正在写的条件时,我不确定?例如,这感觉很混乱(请注意,我删除了大约6个其他条件以避免让您感到厌烦): if( csz=
switch (array($var1, $var2, $var3)) {
case array(true, false, false):
echo "hello";
break;
}
对于这是否是最有效的方法,似乎存在一些疑问。人们的情绪似乎是如果有条件的话更合适。但是,当我看到我正在写的条件时,我不确定?例如,这感觉很混乱(请注意,我删除了大约6个其他条件以避免让您感到厌烦):
if(
csz==“谷歌”|
csz==“bing”|
csz==“雅虎”|
csz==“狗堆”|
csz==“百万短”和
cs=''{
$(“li.phone”).replace为(“”+phoneNaturalSearch+” );
}
若否(
csz==“脸谱”和
cs=''{
$(“li.phone”).replace为(“”+phoneFacebook+” ”);
}
若否(
csz==“谷歌+”||
csz==“正”){
$(“li.phone”).replace为(“”+phoneGooglePlus+” );
}
//删去了其他条件句
否则{
$(“li.phone”).replace为(“”+phoneDefault+” );
}
在这里,使用多个参数进行切换会更有效,还是会对性能造成影响?我想我应该写代码,看看它是否真的不那么凌乱,但我想我应该先从大师那里把它弹出来。我觉得如果你有这么多条件,我更喜欢使用switch语句,使你的代码更干净、更容易理解。。 您可以忽略属于此特定类别的条件的中断
var phoneType= '';
switch(csz){
case "google" :
case "bing" :
case "yahoo" :
case "dogpile" :
case "millionshort" :
if (cs==''){
phoneType = phoneNaturalSearch ;
break;
}
else {
goto case "facebook";
}
case "facebook" :
if (cs==''){
phoneType = phoneFacebook ;
break;
}
else {
goto case "google-plus";
}
case "google-plus" :
case "plus" :
phoneType = phoneGooglePlus ;
break;
default :
phoneType = phoneDefault ;
break;
}
$("li.phone").replaceWith('<li class="phone">' + phoneType + '</li>');
var phoneType='';
开关(csz){
案例“谷歌”:
案例“bing”:
案例“雅虎”:
案例“狗堆”:
案例“百万短”:
如果(cs=''){
phoneType=phoneNaturalSearch;
打破
}
否则{
后藤案“脸谱”;
}
案例“facebook”:
如果(cs=''){
phoneType=phoneFacebook;
打破
}
否则{
后藤案“谷歌+”;
}
案例“谷歌+”:
案例“附加”:
phoneType=phoneGooglePlus;
打破
违约:
phoneType=phoneDefault;
打破
}
$(“li.phone”).replace为(“”+phoneType+” ”);
我觉得如果你有这么多条件,我更喜欢使用switch语句,这会使你的代码更清晰、更容易理解。。
您可以忽略属于此特定类别的条件的中断
var phoneType= '';
switch(csz){
case "google" :
case "bing" :
case "yahoo" :
case "dogpile" :
case "millionshort" :
if (cs==''){
phoneType = phoneNaturalSearch ;
break;
}
else {
goto case "facebook";
}
case "facebook" :
if (cs==''){
phoneType = phoneFacebook ;
break;
}
else {
goto case "google-plus";
}
case "google-plus" :
case "plus" :
phoneType = phoneGooglePlus ;
break;
default :
phoneType = phoneDefault ;
break;
}
$("li.phone").replaceWith('<li class="phone">' + phoneType + '</li>');
var phoneType='';
开关(csz){
案例“谷歌”:
案例“bing”:
案例“雅虎”:
案例“狗堆”:
案例“百万短”:
如果(cs=''){
phoneType=phoneNaturalSearch;
打破
}
否则{
后藤案“脸谱”;
}
案例“facebook”:
如果(cs=''){
phoneType=phoneFacebook;
打破
}
否则{
后藤案“谷歌+”;
}
案例“谷歌+”:
案例“附加”:
phoneType=phoneGooglePlus;
打破
违约:
phoneType=phoneDefault;
打破
}
$(“li.phone”).replace为(“”+phoneType+” ”);
谈到更简洁的解决方案,另一种方法是将它们保存在二维数组中并检索元素索引
看看这个:
var csz= 'amazon';
var groups = [['google','yahoo','bing'],['facebook','orkut','hi5','zurker'],['amazon','bestbuy','sears']];
var groupIndex = getIndexOf(groups,csz);
if(groupIndex ==1){
//code here
alert("1");
}else if(groupIndex ==2){
//code here
alert("2");
}else if(groupIndex ==3){
//code here
alert("3");
}
function getIndexOf(myArray,element){
for(var i=0;i<groups.length;i++){
for(var j=0;j<groups[i].length;j++){
if(myArray[i][j]==element){
return i;
}
}
}
return -1;
}
var csz='amazon';
var组=['google'、'yahoo'、'bing']、['facebook'、'orkut'、'hi5'、'zurker']、['amazon'、'bestbuy'、'sears'];
var groupIndex=getIndexOf(组,csz);
if(groupIndex==1){
//代码在这里
警报(“1”);
}else if(groupIndex==2){
//代码在这里
警报(“2”);
}else if(groupIndex==3){
//代码在这里
警报(“3”);
}
函数getIndexOf(myArray,元素){
对于(var i=0;i谈论更整洁的解决方案,另一种方法是将它们保存在二维数组中并检索元素索引
看看这个:
var csz= 'amazon';
var groups = [['google','yahoo','bing'],['facebook','orkut','hi5','zurker'],['amazon','bestbuy','sears']];
var groupIndex = getIndexOf(groups,csz);
if(groupIndex ==1){
//code here
alert("1");
}else if(groupIndex ==2){
//code here
alert("2");
}else if(groupIndex ==3){
//code here
alert("3");
}
function getIndexOf(myArray,element){
for(var i=0;i<groups.length;i++){
for(var j=0;j<groups[i].length;j++){
if(myArray[i][j]==element){
return i;
}
}
}
return -1;
}
var csz='amazon';
var组=['google'、'yahoo'、'bing']、['facebook'、'orkut'、'hi5'、'zurker']、['amazon'、'bestbuy'、'sears'];
var groupIndex=getIndexOf(组,csz);
if(groupIndex==1){
//代码在这里
警报(“1”);
}else if(groupIndex==2){
//代码在这里
警报(“2”);
}else if(groupIndex==3){
//代码在这里
警报(“3”);
}
函数getIndexOf(myArray,元素){
对于(var i=0;我可以自己查找。这可能取决于运行它的浏览器。我从未使用过此工具。感谢您指点我!我不知道这是如何工作的?您不能只比较两个数组。解释起来有点复杂,但您是对的,数组可能更合适。基本上,我从URL提取了参数(可能存在也可能不存在),以及从Google Analytics cookie中提取的参数。更重要的参数是通过URL传递的参数,因为这意味着传入的链接最有可能来自付费广告。不太重要的是GA utmz cookie中的参数。我正在测试哪些参数存在,哪些不存在,以及呈现给用户有合适的电话号码打电话。然后找到你自己。这可能取决于运行它的浏览器。我从未使用过这个工具。谢谢你指点我!我不明白这是怎么回事?你不能只比较两个数组。解释起来有点复杂,但你是对的,数组可能更合适。基本上,我有参数从URL提取的rs(可能存在也可能不存在),以及从Google Analytics cookie中提取的参数。更重要的参数是通过URL传递的参数,因为这意味着传入的链接最有可能来自付费广告。不太重要的是GA utmz cookie中的参数。我正在测试哪些参数存在,哪些不存在,以及呈现给用户有合适的电话号码打电话。我喜欢它的样子!它更干净,更符合我的想法。我要给它旋转-谢谢!我喜欢它的样子!它更干净,更符合我的想法。我要给它旋转-谢谢!