繁体   English   中英

在JS中,当我“ alert()”传递给函数的参数值时,它会打印出[object Object],为什么?

[英]In JS when I 'alert()' the value of an argument passed to the function, it prints out [object Object], why?

我想做的很简单,我想将字符串值传递给JS函数,以便它可以在通常的警报弹出窗口中显示它们。 这是HTML:

<div class="clickit" onclick="myfun('dog','cat')"> Hello </div>

这是JS:

('.clickit').click(function myfun(){
    var i=0;
    for(i=0;i<arguments.length;i++){
        alert(arguments[i]);
    }
});

不幸的是,它无法正常工作,它打印出:[object Object]。

另外,即使有2个参数,它也只循环一次。 我遵循这里描述的内容: w3schools ,但它没有用。

任何帮助将不胜感激。

没有具有公用名myfun 事件处理程序中的函数是一个命名的函数表达式,因此该名称仅在该函数内部可用。 click属性中的代码将崩溃,您可以在错误日志中找到有关该错误的消息。

当将该函数作为事件处理程序调用时,只有一个参数。 事件对象。

要使用事件中的参数调用该函数,您需要一个命名函数:

function myfun(){
  var i=0;
  for(i=0;i<arguments.length;i++){
    alert(arguments[i]);
  }
}

然后,您可以从click属性中调用它:

<div class="clickit" onclick="myfun('dog','cat')"> Hello </div>

或者您可以从调用该函数的代码中绑定事件处理程序:

$('.clickit').click(function(){
  myfun('dog','cat');
});

演示:

 function myfun(){ var i=0; for(i=0;i<arguments.length;i++){ alert(arguments[i]); } } $('.clickit').click(function(){ myfun('dog','cat'); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div onclick="myfun('dog','cat')"> Hello </div> <div class="clickit"> Hello </div> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM