[英]Is it possible to pass an array from onClick to javascript function?
在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"))">
这可以简单地完成吗?
是的,有可能 。 您可能要使用数组初始化器语法(又名“数组文字”),并且需要注意引号:
<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库,或在另一个答案中使用hookEvent
函数之类的东西来处理IE8和更早的版本没有addEventListener
的事实。
您有2个问题。 array
应该是Array
,因为JS区分大小写。 您也可以使用缩写形式[1,2,3]
。 然后注意,您的onclick
属性用双引号引起来。 您需要通过执行\\"
或简单地使用'
对JS中的引号进行转义:
function myFunction(arr){ // for demo purposes alert( JSON.stringify(arr) ); }
<input type="button" value="myButton" onClick="return myFunction(['string1','string2'])">
我还建议避免使用 TJ Crowder提到的内联JS 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.