javascript - 移动项目在 DOM 中的位置

标签 javascript jquery

假设我在一个容器中有 6 件元素:

<div class="container">
  <div class="one" style="left:100px">...</div>
  <div class="two" style="left:200px">...</div>
  <div class="three" style="left:300px">...</div>
</div>

是否可以将 dom 更改为:

<div class="container">
  <div class="one" style="left:100px">...</div>
  <div class="three" style="left:300px">...</div>
  <div class="two" style="left:200px">...</div>
</div>

我正在尝试使用砖石布局进行不同的尝试,需要根据大小移动内容,然后重新布局容器。我不能只更改内联样式来移动它们,因为那样会造成间隙,然后在进行重新布局时,砌体代码会看到 DOM 的原样,然后将它们移回。

理想情况下是这样的:

$(".container > .item").each(function(){
  // if this class="three" then move its
  // outerHTML and insert it after class="one"
}

不确定这是否可能。

基本问题是我正在构建一个砖石布局,但更像是一个 Windows Metro 外观,水平和垂直一样多,所以想要用元素填充间隙,这些元素可能在 DOM 列表的下方

最佳答案

是的,这是可能的。您可以使用 insertAfter方法举例:

$( '.container > .three' ).insertAfter( '.container > .one' );

无需使用each方法。

关于javascript - 移动项目在 DOM 中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28452565/

相关文章:

javascript - ExtJS 4 获取可观察对象的每个监听器

javascript - 单击播放按钮后开始播放音频

javascript - 使用 jQuery 选择收到 Change() 事件的表单的提交按钮

javascript - 如何在 JS 文件中添加 jQuery

JavaScript - 对象字面量的优点

javascript - 有没有办法用 D3.js 修改 Vega 图表?

javascript - Redux-toolkit:state 是 createSlice reducer 中的代理

javascript - 用jquery高亮textarea边框一段时间

javascript - 复制图像的按钮

jquery - 如何从元素中获取第二个类名?