在其他元素之后附加一个元素
Posted
技术标签:
【中文标题】在其他元素之后附加一个元素【英文标题】:Append an element after other 【发布时间】:2012-10-29 23:19:58 【问题描述】:我想选择一个元素并将其附加在其他元素之后:
使用这个不起作用:
$('.sub'+$(this).val()).appendTo($(this).parent().parent().parent().parent());
dom 是:
<div class="sub1"></div>
<label></label>
期待这个:
<label></label>
<div class="sub1"></div>
真正的dom:
http://pastebin.com/6Vd6USEp
任务是在标签后附加 div,我根据 input.subN 搜索这个标签并选择 de parentparentparentparentparent
【问题讨论】:
试试 this.val() 不带括号和 $ 符号。 需要更多信息。上下文中的“这个”是什么。为什么是父()x4?整个 DOM 树是什么样的?必须给我们更多细节。你只是交换标签和div的顺序吗?为什么? 如果元素需要保持在同一水平,那么.parent().parent().parent().parent()
不是你想要的。 DOM 看起来不完整。
尝试使用 after() 但也不起作用:/
【参考方案1】:
不确定您要做什么,但这里是: 如果您需要简单地将标签移动到 div 之前,请执行以下操作:
$("label").remove().insertBefore(".sub1");
如果您需要将 div 移动到标签之后,请执行以下操作:
$(".sub1").remove().insertAfter("label");
请看这里:http://jsfiddle.net/QpP9J/
【讨论】:
请注意,移动元素时不需要.remove()
。【参考方案2】:
如果您只想在其他元素之前添加标签,请使用 prepend。 http://api.jquery.com/prepend/
【讨论】:
【参考方案3】:你需要before()。
Live Demo
$('.sub1').before('<label></label>');
【讨论】:
以上是关于在其他元素之后附加一个元素的主要内容,如果未能解决你的问题,请参考以下文章