Javascript 元素的重新排序逻辑

Javascript 元素的重新排序逻辑,javascript,jquery,Javascript,Jquery,我正在尝试重新排列元素。有些元素有一个类.image\u容器,有些则没有。我想让所有的元素都在容器的顶部渲染,而那些没有渲染的元素在最后渲染 我使用的逻辑似乎有点偏离,但我根本不知道在哪里/什么地方。我希望第二双眼睛会有所帮助!谢谢大家! 下面是我的代码: $('.trister')。每个(函数(){ if($(this).find('figure.image\u container')。长度!==0){ if($(this.prev().find('figure.image_containe

我正在尝试重新排列元素。有些元素有一个类
.image\u容器
,有些则没有。我想让所有的元素都在容器的顶部渲染,而那些没有渲染的元素在最后渲染

我使用的逻辑似乎有点偏离,但我根本不知道在哪里/什么地方。我希望第二双眼睛会有所帮助!谢谢大家!

下面是我的代码:

$('.trister')。每个(函数(){
if($(this).find('figure.image\u container')。长度!==0){
if($(this.prev().find('figure.image_container')。长度==0){
$(this.insertBefore($(this.prev());
}
}else if($(this.find('figure.image\u container')。长度==0){
if($(this).next().find('figure.image\u container')。长度!==0){
$(this).next().insertBefore($(this));
}
}
});
var tsr=$(“.trister”);
var-arr=[];
var nodesWithClass=$(“.trister-figure.image_-container”);
nodesWithClass.each(函数(){
arr.push(这个);
});
对于(变量i=0;i
你不能做两个数组吗?一个用于带类的元素,一个用于不带类的元素?然后在循环中检查它是否包含该类,如果它确实将其添加到该类的元素数组中,如果没有,则将其添加到另一个数组中。最后你可以合并两个数组并渲染它?
var tsr = $(".teaser");
var arr = [];
var nodesWithClass = $(".teaser figure.image_container");
nodesWithClass.each(function() {
    arr.push(this);
});
for(var i = 0; i < arr.length; i++) {
    arr[i].parentNode.removeChild(arr[i]);
    tsr.prepend($(arr[i]));
}