insertBefore仅在循环的最后一个元素上附加元素

时间:2019-04-08 11:25:01

标签: javascript jquery

我有一组行,我想在其中添加另一组行。我试图将其作为循环所有行,然后在每一行上执行insertAfter操作。

let rows_to_be_attached = parent_tr.nextAll().not('.newly-rows');
let rows_to_attach = parent_tr.nextAll('tr.newly-rows').not('.mia');

$(rows_to_be_attached).each(function(i, el) {    
  $(rows_to_attach).insertAfter($(el));    
}

仅将rows_to_attach'tr's附加在最后el处。为什么?

1 个答案:

答案 0 :(得分:0)

您将在每个循环上插入相同的元素,这样它将从DOM中先前插入的位置(而不是该克隆)中移出并插入。

$(rows_to_be_attached).each(function(i , el){    
    added_rows.clone().insertAfter($(el));    
})

如果有多个元素,并且要一个接一个地插入,请使用索引来获取元素。

$(rows_to_be_attached).each(function(i , el){    
    added_rows.eq(i).insertAfter($(el));    
})