在PHP中我可以写一个这样的函数:
function myFunction(myArray)
{
foreach(myArray)
{
// do stuff with array
}
}
然后我可以这样称呼它(可能很丑,但仍然有效):
myFunction(array("string1","string2"));
我想用JavaScript做类似的事情,但无法弄清楚是否可以将数组传递给类似的函数。这是我的伪功能:
function myFunction(myArray)
{
for (index = 0; index < myArray.length; ++index)
{
// do stuff with array
}
}
我想使用onClick按钮调用它,如下所示:
<input type="button" value="myButton" onClick="return myFunction(array("string1","string2"))">
这可以用一种简单的方式完成吗?
答案 0 :(得分:7)
是的,可能。您可能想要使用数组初始化程序语法(又名&#34;数组文字&#34;),您需要注意引号:
<input type="button" value="myButton" onClick="return myFunction(['string1','string2'])">
如果您的属性值引用双引号,则无法在值中使用文字双引号。最简单的方法是使用单引号,但由于属性值的文本是HTML文本(人们往往会忘记),如果您愿意,可以使用"
。 (我不会。:-))而且文本是HTML的事实是要记住数组的内容......
但它可能不是理想的。您可以考虑使用现代事件处理技术来连接处理程序,例如:
document.querySelector("input[type=button][value=myButton]").addEventListener("click", function() {
myFunction(['string1','string2'])
}, false);
如果你需要支持旧的IE,请使用像jQuery这样的DOM库,或this other answer中hookEvent
函数之类的东西来处理IE8和早期版本不具备{{{ 1}}。
答案 1 :(得分:3)
你有两个问题。 array
应为Array
,因为JS区分大小写。您也可以使用短格式[1,2,3]
。然后请注意,您的onclick
属性包含双引号。您需要通过\"
或仅使用'
来转义JS中的引号:
function myFunction(arr){
// for demo purposes
alert( JSON.stringify(arr) );
}
&#13;
<input type="button" value="myButton" onClick="return myFunction(['string1','string2'])">
&#13;
我还建议避免内联JS ,因为T.J. Crowder提到了它。