回忆一下自己的功能“if statement”

时间:2014-01-10 17:12:42

标签: javascript jquery function

我正在使用Jquery进行一些练习,允许我重新排序一些元素。我在这里解释它的例子是基于一些<li>标签内的数字,如下所示:

<ul>
  <li>4</li>
  <li>5</li>
  .
  .
</ul> 

在这里,我想重新排序,并考虑使用此函数的一些逻辑,为每个li元素删除它并将其放在底部。

$('li').each(function(){
    $(this).parent().append(this);
    reorder ($(this));
})

然后使用另一个函数评估前一个元素 var prev 的值,如果prev更低,则将元素放在该元素之上。

function reorder(p) {
    var val = parseInt(p.text()),
        prev = parseInt(p.prev().text());
    if (val > prev) {
        p.prev().before(p);
    } 
}

现在问题是,如果语句为真,我需要使用新的prev元素重新评估值以考虑新的位置。有点这样:

 if (val > prev) {
    p.prev().before(p);
    // And Run again the function to compare with the new prev element
 }   

有人能告诉我这样做的方法吗?

这是Fiddle Example


Pd:我现在还有其他选项,比如This来获得重新排序,但是这个例子更多的是关于函数的召回。

1 个答案:

答案 0 :(得分:1)

只需再次调用它(这称为recursion):

if (val > prev) {
    p.prev().before(p);
    reorder (p);
} 

Demonstration