使用jQuery移动DOM中的元素
Move elements in DOM using jQuery
如果我有以下结构:
<div id="elements">
<div data-id="5"></div>
<div data-id="3"></div>
<div data-id="1"></div>
<div data-id="4"></div>
<div data-id="0"></div>
</div>
我不知道如何编写函数,我可以说"数据id为4的元素位于位置1"。所以在我得到结果之后:
<div id="elements">
<div data-id="5"></div>
<div data-id="4"></div>
<div data-id="3"></div>
<div data-id="1"></div>
<div data-id="0"></div>
</div>
是否可以使用jQuery?
如果要将元素移动到特定位置,可以使用.eq(index)
将元素移到所需位置,然后使用.insertBefore($element)
将<div>
放置到位。
var $elements = $('#elements').children(),
$elementAt1 = $elements.eq(1);
$elements.filter('[data-id=4]').insertBefore($elementAt1);
#elements > div:before { content: attr(data-id) }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="elements">
<div data-id="5"></div>
<div data-id="3"></div>
<div data-id="1"></div>
<div data-id="4"></div>
<div data-id="0"></div>
</div>
仅将div[data-id="4"]
移动到位置1
$('div[data-id="4"]').insertAfter('div[data-id="5"]');
工作演示
无论如何,如果带有div[data id="5"]的div是第一个div,那么前面的代码就可以工作。。如果不使用此代码
$('div[data-id="4"]').insertAfter('#elements > div[data-id]:eq(0)');
工作演示
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何在DOM元素上按类型构建此函数
- DOM元素和angular元素之间的主要区别是什么
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 使用jquery创建dom元素会导致ie9出现拒绝访问错误
- 通过AJAX侦听向DOM添加某些元素
- 如何在使用Ractive.extend()时引用DOM元素
- 在d3中向DOM元素添加了图像,但现在它赢得了't过渡
- Selenium无法在浏览器DOM中定位元素
- 如何'剪切'DOM元素并将其显示在其他位置
- 转换<a>使用jQuery将文本字符串转换为dom元素
- 从dom中删除任何元素后,Touchmove事件停止触发
- d3在数据更新时错误地附加了dom元素
- 访问VueJS中的DOM元素
- 在Meteor中如何查找DOM元素(渲染后)
- 找到元素DOM的根节点(阴影或光)的最佳方法是什么?
- 在querySelector:如何获得第一个和最后一个元素?dom中使用的遍历顺序