0

我有这样的代码:

  $('#mb-history').on('click', '#post-edit .buttons .delete', function() {
    var files = $('.files input:checked').map(function() {
      return $(this).closest('.file');
    });
    var ids = files.map(function() {
      return $(this).data('id');
    }).get();
    console.log(ids);

    files.remove(); // this don't work

    return false;
  });

并且 files.remove() 不起作用,元素留在 DOM 中。(console.log 显示包含我选择的元素的数组)。我的 html 看起来像这样:

<div class="files ui-helper-clearfix" style="display: block;">
    ...
    <div class="file" data-id="13835">
      <img src="/thumb.php?src=moja-budowa%2F611%2FMB_Z3_611_13835.jpg&amp;size=90&amp;height=64&amp;nologo" alt="">
      <input type="checkbox">
    </div>
    ...
</div>

我的代码有什么问题?我正在使用 jquery-1.8.2。

JSFIDDLE

4

3 回答 3

1

我发现,我可以在设置后放置最接近的地图,而不是地图:

var files = $('.files input:checked').closest('.file')
于 2013-10-21T11:47:28.590 回答
1

您必须具有files删除或任何其他操作的引用。 $.map() 创建一个新数组。改变:

var files = $('.files input:checked').map(function() {
  return $(this).closest('.file');
});

var files = $('.files input:checked').parent();
于 2013-10-21T11:52:51.340 回答
-1
files
[
    e.fn.e.init[1]
    0: div.file
    context: input
    length: 1
    prevObject: e.fn.e.init[1]
    selector: ".closest(.file)"
    __proto__: Object[0]
]


files[0].remove()
于 2013-10-21T11:48:30.900 回答