在循环中移动dom元素
Move dom elements in loop
我们有一个页面,列出了用户购物车中的项目。"编辑"answers"删除"操作的每个项目都会显示链接。我们想通过使用javascript将Edit链接放置在remove链接上方来测试它的位置,但当用户的购物车中可能存在未知数量的项目时,我不确定如何做到这一点。
dom的一个片段如下:
<div class="item-table first">
<div class="item" data-part-number="ABC123">
<a href="/item1detailurl" title="item name"><h3 class="item-name">Item 1 name</h3></a>
<dl>
<dt class="item-attribute">Color:</dt><dd class="item-attribute-value">Blue</dd>
<dt class="edit"><a href="/edititem1url" class="">Edit</a></dt><dd></dd>
</dl>
</div>
<div class="item-qty">
<span class="item-qty">QTY:</span>1
<p><a class="delete-item" data-action="delete" href="/deleteitem1url"">Remove Item</a></p>
</div>
</div>
<div class="item-table">
<div class="item" data-part-number="DEF456">
<a href="/item2detailurl" title="item name"><h3 class="item-name">Item 2 name</h3></a>
<dl>
<dt class="item-attribute">Color:</dt><dd class="item-attribute-value">Black</dd>
<dt class="edit"><a href="/edititem2url" class="">Edit</a></dt><dd></dd>
</dl>
</div>
<div class="item-qty">
<span class="item-qty">QTY:</span>1
<p><a class="delete-item" data-action="delete" href="/deleteitem2url"">Remove Item</a></p>
</div>
</div>
所需状态将每个"编辑"链接移动到包含"删除项目"链接的现有p元素上方的新p元素中。
这应该做到:
$('.item-table').each(function() {
var deleteItem = $(this).find('.delete-item');
var editItem = $('<p></p>').append($(this).find('.edit'));
$(deleteItem).before($(editItem));
});
如果您可以使用jQuery:,那么这就可以了
$('.item-table .item').each(function() {
$(this).find('.edit').insertBefore($(this).next('.item-qty').find('.delete-item'));
});
基本上,您需要循环遍历.item-table
中的每个.item
。一旦有了.item
,就需要找到.edit
元素,并使用insertBefore
找到相应的.delete-item
节点,并在其前面插入选定的.edit
节点。
下面是一个使用jQuery的工作示例和实际结果。
相关文章:
- 如何在DOM元素上按类型构建此函数
- DOM元素和angular元素之间的主要区别是什么
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标
- 使用jquery创建dom元素会导致ie9出现拒绝访问错误
- 如何在使用Ractive.extend()时引用DOM元素
- 在d3中向DOM元素添加了图像,但现在它赢得了't过渡
- 如何'剪切'DOM元素并将其显示在其他位置
- 转换<a>使用jQuery将文本字符串转换为dom元素
- d3在数据更新时错误地附加了dom元素
- 访问VueJS中的DOM元素
- 在Meteor中如何查找DOM元素(渲染后)
- IE9-添加和删除DOM元素会破坏父keydown事件
- 未捕获错误:元素缓存中id为x的DOM元素与DOM中的元素不同
- 在 ng-if 编译后访问指令中的 DOM 元素
- spin.js/angular spinner:如何将spin定位到DOM元素中(包括plunker演示)
- 如何在dom元素中插入输入标记数据插件
- Mobile Safari、jQuery以及绑定到未来的DOM元素
- 从字符串创建dom元素时添加多个类
- 如何根据客户端的屏幕大小使用javascript更改DOM元素
- 为onClick-hander插入临时DOM元素