为什么不jQuery的附加工作,为HTML列表中的项目结束了吗?
题
我想克隆一个列表项,然后将其附加到克隆列表项的底部,注意它应该是下面的列表项被克隆,不是因为我能做到这一点的列表的底部我。目的是与jQuery.ui排序使用它。
一切工作正常,其实我甚至可以得到克隆和附加权利。然而,它附加的 的收盘</li>
标记之前,和我的生活,我不能强迫它附加的之后此标签。
这是HTML标记:
<ul id="column-2" class="connectedSortable">
<li class="ui-state-default">
<div class="label">feature</div>
<div class="action">
<div class="delete"></div>
<div class="other"></div>
</div>
</li>
</ul>
我们关心的部分是class="other"
其在被点击将复制列表项。
这是jQuery的迄今:
// This works fine
$(".other").click(function() {
// This needs to be set (global) to be used later on in some future code.
actionTarget = this;
// This grabs the whole list item
var targetStory = $(actionTarget).parent().parent();
// This clones the list item, as well as appending
// that clone to the cloned list item
$(targetStory).clone().appendTo(targetStory);
})
这工作得很好,它抓住列表项,克隆它,然后转储在屏幕上 - 但在错误的地方:(
<ul id="column-2" class="connectedSortable">
<li class="ui-state-default">
<div class="label">feature</div>
<div class="action">
<div class="delete"></div>
<div class="other"></div>
</div>
<li class="ui-state-default">
<div class="label">feature</div>
<div class="action">
<div class="delete"></div>
<div class="other"></div>
</div>
</li>
</li>
</ul>
任何人有,为什么它不附加到列表项的末尾任何想法被克隆,以及如何解决这个问题?
解决方案
也许你想使用后代替appendTo
其他提示
我想你想的是这样的:
$(targetStory).clone().appendTo(targetStory.parent());
我觉得 insertAfter 是你在找什么。经过克隆后,会插入原来的节点,而不是原来的节点之后的克隆。像这样的东西应该工作:
$(targetStory).clone().inserAfter(targetStory);
不隶属于 StackOverflow