我想做的非常简单,我想将字符串值传递给 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 ,但它不起作用。
任何帮助将不胜感激。
最佳答案
没有具有公共(public)名称 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>
或者您可以从调用该函数的代码绑定(bind)事件处理程序:
$('.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>
关于javascript - 在JS中,当我将 'alert()'参数的值传递给函数时,它会打印出[object Object],为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33636406/