2015-06-22 52 views
1

我有一個數組,我想傳遞給一個javascript onclick函數。我在按鈕的onclick事件中發送該數組。 onclick函數返回我[對象對象]。有沒有一種不同的方式來與數組調用該函數?Javascript-如何在onclick事件傳遞數組作爲參數?

這裏我的代碼:

var data_type= $.parseJSON(data_playtype[1]);//{"1":"apple","2":"orange","23":"berry","8":"grape","9":"mango"} 


str1.push('<td><a href="javascript:void(0)" onClick="showABC(\''+data_type+'\')">'Data'</td>'); 



function showABC(fruit){ 

    $.each(fruit,function(pid,pt){ 
     alert(pt); 
    }); 

} 
+2

不要使用HTML和內聯事件處理程序。使用jQuery構建DOM元素並綁定事件處理程序,以便您可以使用閉包。我強烈建議閱讀jQuery教程:https://learn.jquery.com/using-jquery-core/manipulating-elements/#creating-new-elements,https://learn.jquery.com/events/event-基礎知識/ –

+0

'pt'是一個對象,所以當你執行'alert(pt)'時,它將對象串化爲'[object Object]'。嘗試訪問該對象的特定鍵。 –

+0

@JoshBeam:在構建HTML時,字符串轉換早已發生。 –

回答

1

我有想要傳遞給一個javascript的onclick函數數組。 我在按鈕的onclick事件中發送該數組。點擊 函數返回我[對象對象]。有沒有不同的方式來做 調用該函數與數組?

請注意,data_type看起來不是Arrayjs; data_type似乎Object


嘗試利用.on(),內的data_type作爲參數click事件處理程序調用showABC()

var data_playtype = []; 
 

 
data_playtype[1] = JSON.stringify({ 
 
    "1": "apple", 
 
    "2": "orange", 
 
    "23": "berry", 
 
    "8": "grape", 
 
    "9": "mango" 
 
}); 
 

 
var data_type = $.parseJSON(data_playtype[1]); 
 
//{"1":"apple","2":"orange","23":"berry","8":"grape","9":"mango"} 
 

 
var str1 = []; 
 
str1.push("<td><a href=javascript:void(0)>Data</a></td>"); 
 

 
function showABC(fruit) { 
 

 
    $.each(fruit, function(pid, pt) { 
 
    alert(pt); 
 
    }); 
 

 
}; 
 

 
$("table tbody").append(str1).find("a") 
 
    .on("click", function() { 
 
    showABC(data_type) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<table> 
 
    <tbody></tbody> 
 
</table>

0

DEMO

使用內聯JS是不是一個好主意。我會用一個數據屬性來保存數據如下:

var data_type = .....; 
var link = $('<a/>').data('data_type', data_type).html('Data'); 
str1.push($('<td/>').html(link)); 

//event handler 
link.on('click', function(e) { 
    e.preventDefault(); 
    var data_type = $(this).data('data_type'); 
    ..... 
}); 

編號:https://api.jquery.com/data/

。數據(鍵,值)

關鍵

類型:字符串 命名要設置的數據段的字符串。

類型:任何 新的數據值;這可以是除undefined之外的任何Javascript類型。

+0

jQuery在傳遞給'data'時自動將對象轉換爲JSON嗎? –

+0

@FelixKling,你究竟是什麼意思?你關心什麼? – PeterKA

+0

沒關係,我被「數據屬性」弄糊塗了。忘了jQuery有它自己的數據存儲。 –