我有这个功能,但我不知道“开关”会更好吗?
(function ($) {
var doc = $.urlParam('doc');
if (doc) {
if (doc = 'new') {
alert(doc);
}
if (doc = 'new2') {
alert(doc);
}
if (doc = 'new3') {
alert(doc);
}
}
})(jQuery);
警报只应显示URL中的参数是否正确,如IF语句中所示。
完整的代码可以在这里找到:https://jsfiddle.net/yc5f9ct7/4/
答案 0 :(得分:3)
您必须使用==
而不是=
来检查if语句中的相等性:
(function ($) {
var doc = $.urlParam('doc');
if (doc) {
if (doc == 'new') {
alert(doc);
}
if (doc == 'new2') {
alert(doc);
}
if (doc == 'new3') {
alert(doc);
}
}
})(jQuery);
答案 1 :(得分:2)
如前所述,需要双等号,但您也可以将其缩短为:
(function ($) {
var doc = $.urlParam('doc');
if (doc) {
if (doc == 'new' || doc == 'new2' || doc == 'new3') {
alert(doc);
}
}
})(jQuery);
答案 2 :(得分:1)
正如大家所指出的,您使用的是作业=
,而不是比较==
或完全比较===
。
除此之外,如果您正在为多个值测试一个变量,并且打算在每个变量上使用不同的代码,那么切换更合乎逻辑:
var doc = $.urlParam('doc');
switch (doc){
case 'new':
alert(doc);
break;
case 'new2':
alert(doc);
break;
case 'new3':
alert(doc);
break;
}
另请注意:看起来就像你的代码想要将最后一部分包装在DOM就绪处理程序中一样,但是你将它包装在IIFE中。将包装器更改为jQuery(function($){ YOUR CODE HERE });
e.g。
jQuery(function($){
var doc = $.urlParam('doc');
switch (doc){
case 'new':
alert(doc);
break;
case 'new2':
alert(doc);
break;
case 'new3':
alert(doc);
break;
}
});
这个方便的 DOM ready 快捷方式提供了一个本地范围的$
。