Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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
如何确定是否向Javascript函数提供了参数?_Javascript_Jquery_Function - Fatal编程技术网

如何确定是否向Javascript函数提供了参数?

如何确定是否向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

我一直在尝试调用一个javascript函数,该函数可能接受3个参数,即:pcode、color和size。 始终提供Pcode。但是,颜色和尺寸可能提供,也可能不提供。 提供的参数可以是: a、 )仅pcode b、 )pcode和color c、 )pcode和大小 d、 )pcode颜色和大小

Pcode是整数。颜色和大小是字符串

我已经检查了
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')”。