Javascript jQuery each()只选择最后一个值

Javascript jQuery each()只选择最后一个值,javascript,jquery,Javascript,Jquery,我有两张单子 第一个列表包含所有数据。另一个是占位符。我有一个按钮来获取默认值。将第一个列表克隆到占位符中 现在,我使用此代码对所有找到的数据id发出警报。这很好用 但当我试图将这些数据属性粘贴到占位符上时,它总是粘贴每个占位符中的最后一个值 $(".default").click(function() { $("li.to-drag").each(function(index) { $("li.placeholder").addClass("dropped");

我有两张单子

第一个列表包含所有数据。另一个是占位符。我有一个按钮来获取默认值。将第一个列表克隆到占位符中

现在,我使用此代码对所有找到的数据id发出警报。这很好用

但当我试图将这些数据属性粘贴到占位符上时,它总是粘贴每个占位符中的最后一个值

$(".default").click(function() {

    $("li.to-drag").each(function(index) {

        $("li.placeholder").addClass("dropped");

        var clone = $(this).clone();
        var day = $(this).attr("data-id");

            $("li.placeholder").each(function(){
                $("li.placeholder").attr("data-id", index);
            });

        clone.hide().appendTo("." + index).fadeIn(1500);

    });

    var dropped = $(".dropped").length;
    var original = $(".placeholder").length;

    if (dropped === original) {

        $("li.placeholder").removeClass(blank_placeholder);
        $("#dropzone").append('<li class="placeholder blank" data-id="" data-order=""></li>');

        init();
    }

});

循环中,必须使用
$(此)
,否则每次循环重复时都会更改所有内容

因此,只需更改代码的以下部分:

$("li.placeholder").each(function(){
    $(this).attr("data-id", index);
});
.each()
循环中,必须使用
$(this)
,否则每次循环重复时都会更改所有内容

因此,只需更改代码的以下部分:

$("li.placeholder").each(function(){
    $(this).attr("data-id", index);
});

这不能解决我的问题。它仍然给我最后一个值。如果我按下按钮会发生什么?我现在不明白您的问题。按下按钮时,要拖动的
.todrag
元素被克隆到
.placeholder
中。但是要拖动的
.to
包含一个数据属性,该属性应复制到
中。占位符
通过上述代码找到了解决方案。我会以编辑的形式发布的好吧,现在我明白你的问题了。只需将第二个
.each()
更改为以下内容:
$(“li.placeholder.”+index).attr(“数据id”,day)因为您不需要循环遍历所有占位符,只需切换到要更改的占位符。这并不能解决我的问题。它仍然给我最后一个值。如果我按下按钮会发生什么?我现在不明白您的问题。按下按钮时,要拖动的
.todrag
元素被克隆到
.placeholder
中。但是要拖动的
.to
包含一个数据属性,该属性应复制到
中。占位符
通过上述代码找到了解决方案。我会以编辑的形式发布的好吧,现在我明白你的问题了。只需将第二个
.each()
更改为以下内容:
$(“li.placeholder.”+index).attr(“数据id”,day)因为您不需要遍历所有占位符,只需遍历要更改的占位符