我正在使用div
函数移动insertAfter
元素的位置(和父级)。
像这样:
$('.annotation i').click(function(){
$('.annotation').find('.comment').insertAfter('#container');
});
我想知道是否有可能以某种方式存储原始父级,以便在另一个用户操作之后将div
元素移回其原始位置(在原始父级之下)。
感谢。
答案 0 :(得分:2)
var parent = $('.annotation').find('.comment').parent();
将为您提供.comment类'元素的父级。
你也提到存储它的位置。您可能会发现 JQuery Index 很有帮助。存储父索引或以类似方式存储特定.comment元素的位置以供以后使用。
答案 1 :(得分:2)
这个使用.data()
函数存储对原始父级的引用。
$('.annotation i').click(function(){
$('.annotation').find('.comment').each(function() {
$(this).data('oparent', $(this).parent());
$(this).insertAfter('#container');
});
});
function anotherUserAction(comment) {
comment.appendTo(comment.data('oparent'));
}
答案 2 :(得分:1)
您可以创建元素的克隆并隐藏原始内容:
$e = $('element');
$c = $e.clone();
$e.hide();
然后你可以销毁移动的元素并再次显示原文:
$e.show();
$c.remove();
或用移动的原件替换原件:
$e.replaceWith($c);
如果原始元素具有ID属性,您还需要在克隆上更改或删除它,以便所有元素都保留唯一ID:
$c.attr('id','new-unique-string');
// or
$c.removeAttr('id');