使用jQuery内部的sort函数对div排序时出现问题

时间:2019-04-10 15:14:21

标签: javascript jquery

我正在尝试对父母内部的内部元素进行排序。

在此简化的标记div中,“ down”类应该被关闭(或向上无关紧要)。 HTML

<div class="parent">
    <div class="inner down">2</div>
    <div class="inner down">2</div>
    <div class="inner">1</div>
</div>
<div class="parent">
    <div class="inner">1</div>
    <div class="inner down">2</div>
    <div class="inner">1</div>
</div>

我的代码本来可以工作,但是什么也没发生。潜水员没有动。

$('.parent').each(function(){
    var $elem = $(this).find('.inner').sort(function(a,b){
    return a.className < b.className;
    //return Math.random() >= 0.5; //doesn't make anything either
    });
    $(this).append($elem);
});

所需的输出

<div class="parent">
    <div class="inner">1</div>
    <div class="inner down">2</div>
    <div class="inner down">2</div>
</div>
<div class="parent">
    <div class="inner">1</div>
    <div class="inner">1</div>
    <div class="inner down">2</div>
</div>

我不太了解我的代码有什么问题(正在使用jQuery 3.3.1)。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

获取具有0类的所有元素,然后重新附加以将其向下移动。

down
// use append method with callback to iterate over the 
// element and append the eleemnt which is returned
$('.parent').append(function() {
// get all element with class down witin the current parent
// specify context as this(this refers to current parent element)
  return $('.down', this)
})