Javascript 在JS中,当我';警报();传递给函数的参数值,它打印出[object object],为什么?
我想做的很简单,我想把字符串值传递给JS函数,这样它就可以在通常的警报弹出窗口中显示它们。 以下是HTML:Javascript 在JS中,当我';警报();传递给函数的参数值,它打印出[object object],为什么?,javascript,jquery,Javascript,Jquery,我想做的很简单,我想把字符串值传递给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(arg
<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]);
}
});
('.clickit')。单击(函数myfun(){
var i=0;
对于(i=0;i),它不起作用
任何帮助都将不胜感激。没有具有公共名称的函数myfun
。事件处理程序中的函数是命名函数表达式,因此该名称仅在该函数中可用。单击属性中的代码将崩溃,您可以在错误日志中找到该函数的错误消息
当函数作为事件处理程序调用时,只有一个参数:事件对象
要使用事件中的参数调用函数,需要命名函数:
function myfun(){
var i=0;
for(i=0;i<arguments.length;i++){
alert(arguments[i]);
}
}
$('.clickit').click(function(){
myfun('dog','cat');
});
演示:
函数myfun(){
var i=0;
对于(i=0;iI)我不认为这个问题是重复的,我也不认为它应该被关闭。@J4G:它显然不是重复的,至少不是被标记为重复的问题,所以我重新打开了它。@Guffa这个问题已经被关闭并重新打开了?似乎没有显示历史记录?参数[0]
是一个jQuery.Event实例,通过调用时。单击附件(因此.toString
将其提供“[对象对象]”
),onclick属性在调用时给出了一个ReferenceError。您在这里混合了两件事。为什么要使用内联事件处理程序并使用jQuery绑定另一个事件处理程序?我建议您先多花些时间阅读和使用它。@FelixKling:是的,当然。谢谢,我已经更正了。如果我插入了这段代码,您可能也想链接它:在标记中,它可以工作,但不幸的是,情况并非如此,像您那样声明一个函数甚至根本不会调用该函数。是否有其他方法允许我获得所需的内容,而无需冲突。单击/onclick=“
”?我可以从html向函数传递参数而不在onclick=“”中调用它吗
?或者我可以在没有的情况下描述该类的函数吗?单击或。在(“单击”、…)
过程中?@FebioMosca:我刚刚忘记删除);
在函数定义之后。我编辑了上面的代码,并添加了一个演示,演示了使用函数的两种方法。我需要从HTML代码传递所需的参数,而不是从JS传递。此外,如果我在StackOverflow上运行您的代码段,它根本不起作用,如果我只在JSFIDLE中运行第二个“Hello”这是因为值是直接从JS传递的,这不是我需要的。我需要解决。单击/onclick=“”
冲突,同时仍然从HTML传递值并将函数myfun()与div的类关联。如果可能的话。。。
$('.clickit').click(function(){
myfun('dog','cat');
});