只是出于普遍的好奇,我想知道为什么一个标记与另一个标记相对于.prev
根据api,使用.prev
你可以操作元素的前身。
jQuery: 这里只是一个片段,完整的代码在这里。
jQuery('.add').click(function (e) {
var copy = jQuery('#static-copy-sample .static-sublayers > #log1').clone();
copy.appendTo(jQuery(el).prev().find('.static-sublayers'));
});
HTML:
<div class="static-sublayers">
<div id="log1">elf <span class="will">1</span> </div>
</div>
<a class="add" href="#">Add</a>
基本上a
上面是元素el
,我appendTo
是.prev()
块,我让它工作的唯一方法是.static-sublayers
用 div 包装?
根据我对api的理解,.prev
获取了前一个元素,所以我不确定为什么必须包装它?
这是一个新手问题,但我再次出于纯粹的好奇提出这个问题,希望能在 jQuery 上做得更好,并特别理解.prev()
一些更好的和一般的棘手问题。
小提琴再次更深入地显示了代码,您可以更好地理解我,我已将工作 HTML 注释掉。
编辑:
我一发布这个,我就弄乱了小提琴,找到了我的答案。我尝试在发布之前彻底测试所有内容我在询问之前这样做了copy.appendTo(jQuery(el).prev('.static-sublayers'));
然后意识到我需要.prev
留空.prev()
......所以如果目标是嵌套的,那么.find()
是一个很好的解决方案,但如果标记很简单并且前面的元素没有嵌套在然后copy.appendTo(jQuery(el).prev());
就是解决方案。