我正在使用 jQuery.ajax 读取 XML 文件并将其呈现为 HTML。
下面的代码为 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() 不适用于这个?