我正在使用jQuery.ajax讀取並將XML文件呈現爲HTML。關於動態生成html元素的onmousedown
下面的代碼生成按鈕的表中的XML每個數據記錄:
$(xml).children('run').each(function() {
var runname = $(this).children('name').text();
buttonHtml = '<tr><td class="expbutton" id="runExpButton" onmousedown="myFunc(runname)">Click me</td></tr>';
$('#Runs').append(buttonHtml);
});
不難看到這裏我要達到什麼目的。但顯然這是行不通的。
我的問題是如何在jQuery中實現這一點?如果我使用.live或.on方法,則無法訪問本地變量,例如「runname」。
[編輯]
使用jQuery.data()嘗試:
$(xml).children('run').each(function() {
var runname = $(this).children('name').text();
buttonHtml = '<tr><td class="expbutton" id="runExpButton" onmousedown="myFunc(runname)">Click me</td></tr>';
$('#runExpButton').data('runname', runname);
$('#Runs').append(buttonHtml);
});
$('#runExpButton').live('click',function() {
alert($(this).data("runname"));
});
它似乎沒有工作?只有其中一個按鈕具有正確的數據值。
因爲所有的按鈕都有相同的ID,我懷疑.data()不起作用?
.live()中的$(this).data(「runname」)是否正確?你能看看我的嘗試嗎?它不起作用。 – user1792714
將元素附加到表後,您需要調用.data。在將它附加到表之前,它不存在。 –
@ user1792714我編輯了我的代碼,向您展示如何爲每個單元格創建唯一的ID。您不希望具有相同ID的多個元素。 –