$ .dpend()在$ .append()之后没有按预期工作

时间:2012-02-02 22:39:16

标签: jquery

jsfiddle:http://jsfiddle.net/mAF6A/3/

我正在表中克隆模板TR,设置克隆的$.data()属性并将其附加到表中。在我追加之后,它会丢失数据属性。我在这里做错了什么?

var arr = [{
    name: "one",
    id: 1},
{
    name: "two",
    id: 2},
{
    name: "three",
    id: 3}];

$.each(arr, function(i, item) {
    var clone = $("tr.template").clone().removeClass("template");
    clone.find(".value").html(item.name);
    clone.data("number", item.id);
    clone.find(".data").html("My data is: " + clone.data("number"));
    $("table").append(clone);
});

$("tr[data-number='2']").remove();

1 个答案:

答案 0 :(得分:4)

clone.data("number", item.id);

这不会向元素添加data-属性。它将它存储在jQuery的内部“数据”对象中。

您需要将该属性实际添加到元素中。

clone.attr("data-number", item.id);

data方法可以读取data-属性,但无法写入。