jQuery insertAfter最后一项
我有:
点击a.blah
,我需要将一些类似
xxx
到父 .main
之后的最新.main
,这意味着它应该找到最新的.reply
agter a.blah
,它不应该交叉到另一个.main
,这是我编码的(但不工作):
$('.blah').on('click', function(){ var new_add = 'xxx'; $(this).parents('div.main').next('.main:last').append(new_add); });
我该怎么解决这个问题? 谢谢
根据评论
$('.blah').on('click', function(){ var new_add = 'xxx'; $(this).closest('.main').nextUntil('.main:not(.reply)').addBack().last().after(new_add); });
演示: 小提琴
- .closest()找到与选择器匹配的直接祖先
- .nextUntil()查找当前
.main
之后的所有.reply
元素,而不会越过.main
而不是.reply
- .addBack()添加回当前父级,包含下一个
.main
不是.reply
- .last()查找匹配集中的最后一个元素
- .after()在匹配的元素集之后插入传递的元素
$('.blah').on('click', function(){ var new_add = 'xxx'; $(this).parents('div.main').siblings('.main:last').append(new_add); });
小提琴