使用jquery将数据附加到新创建的行

时间:2011-06-26 01:30:38

标签: jquery

我似乎无法使用jQuery向新创建的行添加新数据:

$("table").append('<tr id="foo"><td>hi</td></tr>');
$("#foo").data("bar",1);
console.log($("#foo").data()); // returns empty object: Object {}

我可以使用live()或类似的东西吗?

2 个答案:

答案 0 :(得分:3)

您的代码是正确的。

可能的失败点是:

  • $("table")选择器未找到匹配项。 (也许DOM尚未就绪。)

  • 页面上有多个ID为foo的元素。 (这是无效的。)

  • 您使用的jQuery版本太旧,不支持.data()(可疑)

如果您尚未确定DOM已准备就绪,则常见的解决方案是使用ready()[docs]方法。

$(document).ready(function() {
    $("table").append('<tr id="foo"><td>hi</td></tr>');
    $("#foo").data("bar",1);
    console.log($("#foo").data());
});

...或者作为快捷方式,您可以将回调直接传递给jQuery函数:

$(function() {
    $("table").append('<tr id="foo"><td>hi</td></tr>');
    $("#foo").data("bar",1);
    console.log($("#foo").data());
});

答案 1 :(得分:0)

我使用方括号作为ID,jQuery无法识别我正在使用的ID选择器。我发现我可以使用斜杠来转义方括号,这允许jQuery选择我想要的行。