jQuery删除一个对象并替换在同一个地方 [英] jQuery remove an object and replace in same spot

查看:194
本文介绍了jQuery删除一个对象并替换在同一个地方的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何从无序列表中删除对象并将其添加到另一个列表中,同时保留其位置?我知道我可以将原始项目设置为hide()但是然后会留下项目用来显示的小空间。假设我有一个列表A和B,如果用户点击A中的项目,则需要将其添加到B并从A中删除。如果他们现在单击按钮将其从B中删除并返回到A,我想要让它显示在原来的相同位置。我知道我可以通过append()添加它但不会将它放在同一个位置。有人想过吗?

How would I go about removing an object say from an unordered list and add it to another list while keeping its location? I know i can set the original item to hide() but then that leaves a small space where the item use to appear. Say i have a list A and B, if a user clicks on an item in A it needs to be added to B and removed from A. If they now click on a button to remove it from B and back to A, i want to have it displayed in the same spot it originally did. I know i can add it via append() but that won't put it in the same location. Thoughts anyone?

推荐答案

你可以使用.clone吗?所以:

You could use .clone? so:

<ul id="firstlist">
    <li>One</li>
    <li>Two</li>
    <li>Three</li>
    <li>Four</li>
</ul>

<ul id="secondlist">
    <li>One</li>
    <li>Two</li>
    <li>Three</li>
</ul>

jquery:

var object = $('#firstlist > li :last ').clone();
$('#secondlist').append(object);
$('#firstlist > li :last ').destroy();

显然你可以交换这一轮将它添加到第一个列表,但要获得你能够的位置我可能会采取多种方式:

Obviously you can swap this round to add it to the first list, but to get the position you could use a number of ways, I would probably do:

$('#firstlist').children('li').each(function(i){

});

并使用i获取头寸。您可以在给定对象之后追加:

and use "i" to get the position. you can append after a given object to so:

$('#firstlist').children('li').each(function(i)
 { if(i== 4){ $(this).append(object).after(this) }

这篇关于jQuery删除一个对象并替换在同一个地方的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆