簡體   English   中英

是否可以將數組從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"))">

這可以簡單地完成嗎?

是的,有可能 您可能要使用數組初始化器語法(又名“數組文字”),並且需要注意引號:

<input type="button" value="myButton" onClick="return myFunction(['string1','string2'])">

如果您的屬性值用雙引號引起來,則不能該值使用文字雙引號。 最簡單的方法是使用單引號,盡管由於屬性值的文本是HTML文本(人們往往會忘記),所以您可以使用&quot; 如果你喜歡。 (我不會::-))文本是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM