如何确定是否向Javascript函数提供了参数?
我一直在尝试调用一个javascript函数,该函数可能接受3个参数,即:pcode、color和size。 始终提供Pcode。但是,颜色和尺寸可能提供,也可能不提供。 提供的参数可以是: a、 )仅pcode b、 )pcode和color c、 )pcode和大小 d、 )pcode颜色和大小 Pcode是整数。颜色和大小是字符串 我已经检查了如何确定是否向Javascript函数提供了参数?,javascript,jquery,function,Javascript,Jquery,Function,我一直在尝试调用一个javascript函数,该函数可能接受3个参数,即:pcode、color和size。 始终提供Pcode。但是,颜色和尺寸可能提供,也可能不提供。 提供的参数可以是: a、 )仅pcode b、 )pcode和color c、 )pcode和大小 d、 )pcode颜色和大小 Pcode是整数。颜色和大小是字符串 我已经检查了onclick='offline(11,粉红色,小)是否正确提供,但函数本身不执行 function offline(pcode,color
onclick='offline(11,粉红色,小)
是否正确提供,但函数本身不执行
function offline(pcode,color,size)
{
if ((typeof color !== undefined)&&(typeof size === undefined))
{
$("#offlinecart").show();
$("#offlinecart").load('addoffline.php?orderno='+orderno+'pcode='+pcode);
alert(" Product successfully added.");
}
else if ((typeof color !== undefined)&&(typeof size === undefined))
{
$("#offlinecart").show();
$("#offlinecart").load('addoffline.php?orderno='+orderno+'pcode='+pcode+'color='+color);
alert(" Product successfully added.");
}
else if ((typeof color === undefined)&&(typeof size !== undefined))
{
$("#offlinecart").show();
$("#offlinecart").load('addoffline.php?orderno='+orderno+'pcode='+pcode+'size='+size);
alert(" Product successfully added.");
}
else if ((typeof color !== undefined)&&(typeof size !== undefined))
{
$("#offlinecart").show();
$("#offlinecart").load('addoffline.php?orderno='+orderno+'pcode='+pcode+'color='+color+'size='+size);
alert(" Product successfully added.");
}
}
如果您只是在寻找一种调试方法,那么可以使用
arguments
对象。每个函数都有一个调用。它的行为类似于一个数组
,尽管它没有所有的本机方法
例如,要检查传递的前三个参数,可以使用:
var firstThree=Array.prototype.slice.apply(参数0,3);
或者,要检查给定参数的数量,请在函数中添加以下内容:
console.log(arguments.length)
您可以在上看到有关该对象的更多详细信息
要更明确地回答:
通常,如果某个内容未定义
,则不会传入。如果要传递未定义的
,则会出现例外情况
这也是使用默认运算符的常见情况。例如,要检查某个内容是否已通过,并在未通过时提供该内容,请执行以下操作:
var passedArg=passedArg | | defaultArg;
也就是说,看到调用这个的代码会很有用。它似乎是一个事件处理程序,可能有其他问题。您能将其添加到帖子中吗?将字符串作为参数传递到函数中时,字符串必须包含在“或”引号中 像这样试试
onclick='offline(11,"Pink","Small")'
or
onclick="offline(11,'Pink','Small')"
既然您使用jquery,为什么不创建一个click事件而不是onclick内联事件呢
$(document).on('click','#offlineId',function(){
if ((typeof color !== undefined)&&(typeof size === undefined))
{
$("#offlinecart").show();
$("#offlinecart").load('addoffline.php?orderno='+orderno+'pcode='+pcode);
alert(" Product successfully added.");
}
else if ((typeof color !== undefined)&&(typeof size === undefined))
{
$("#offlinecart").show();
$("#offlinecart").load('addoffline.php?orderno='+orderno+'pcode='+pcode+'color='+color);
alert(" Product successfully added.");
}
else if ((typeof color === undefined)&&(typeof size !== undefined))
{
$("#offlinecart").show();
$("#offlinecart").load('addoffline.php?orderno='+orderno+'pcode='+pcode+'size='+size);
alert(" Product successfully added.");
}
else if ((typeof color !== undefined)&&(typeof size !== undefined))
{
$("#offlinecart").show();
$("#offlinecart").load('addoffline.php?orderno='+orderno+'pcode='+pcode+'color='+color+'size='+size);
alert(" Product successfully added.");
}});
这建议你应该把你的函数分解成更小的函数。是时候重构了。嗯,
onclick='function(11,粉红色,小的)“
无法工作,因为您不能使用名为function
的函数。事实上,您将函数命名为脱机
。请阅读这些文章,以便提供更多有用的上下文信息(并请自便)。Felix,我在代码中实际使用了onclick='offline(11,粉色,Small)'。我的问题中出现了打字错误(抱歉)但仍然不起作用。:(然后进行一些调试!您在控制台中看到了哪一个错误?请像这样尝试onclick=“offline(11,'Pink','Small')”。