我似乎无法使用jQuery向新创建的行添加新数据:
$("table").append('<tr id="foo"><td>hi</td></tr>');
$("#foo").data("bar",1);
console.log($("#foo").data()); // returns empty object: Object {}
我可以使用live()或类似的东西吗?
答案 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选择我想要的行。