是否可以将数组从 onClick 传递到 javascript 函数?
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"))">
这可以通过简单的方式完成吗?
是的,可能。您可能想使用数组初始化语法(又名 "array literal"),并且您需要注意引号:
<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,请使用 DOM 库,如 jQuery,或类似 this other answer 中的 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'])">
我还建议 避免内联 JS 正如 提到的那样。
在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"))">
这可以通过简单的方式完成吗?
是的,可能。您可能想使用数组初始化语法(又名 "array literal"),并且您需要注意引号:
<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,请使用 DOM 库,如 jQuery,或类似 this other answer 中的 hookEvent
函数来处理 IE8之前没有 addEventListener
.
你有2个问题。 array
应该是 Array
,因为 JS 是区分大小写的。您也可以使用缩写 [1,2,3]
。然后注意您的 onclick
属性用双引号引起来。您需要通过 \"
或简单地使用 '
:
function myFunction(arr){
// for demo purposes
alert( JSON.stringify(arr) );
}
<input type="button" value="myButton" onClick="return myFunction(['string1','string2'])">
我还建议 避免内联 JS 正如