2011-07-26 8 views
0

各行にdivを含むリストがあります。各divの要素の1つはラベルです。ラベルには、マップ内のマーカー(斜線部分)のイン/アウト情報が含まれています。私はそれらがラベルのin/outステータスに従ってソートされることを望みます。私がこれまで行ってきたことは、以下のコードを持っていることです。 ユーザーは、マーカーの状態を変更する陰影領域のスケールを変更できます。したがって、地図上のマーカーのステータスに応じてリストを更新する必要があります。すべてのマーカーINはリストの一番上に、アウトはINの後に置く必要があります。jquery div要素の状態に応じてリストをソート

**私は30行でこれを行うメソッドを持っています。私はこのメソッドを使用したいと思います。

Aは、in/Outラベルのhtmlプロパティが正しく設定されていることを確認するためのテストループコードです。 Bは現時点では動作していないコードです。誰でもおなじみの人がコード内に何が見当たらないか見てください。

ありがとうございます。

HTMLコード

<div id="divsec_13A North Buderim Bvd Buderim" name="13A North Buderim Bvd Buderim"> 
    <input type="checkbox" name="checkbox_13A North Buderim Bvd Buderim" id="4" value="13A North Buderim Bvd Buderim"> 
    <a onclick="$.fn.centerMarker('13A North Buderim Bvd Buderim');">13A North Buderim Bvd Buderim</a> 
    <label type="label" name="inOut_13A North Buderim Bvd BuderimLabel" id="inOut_13A North Buderim Bvd BuderimLabel" class="inOutControl">In</label> 
</div> 

PS:リストはこのようにかなっています。

チェックボックス|アドレス1 | In

チェックボックス| | Out

チェックボックス|アドレス3 | In

チェックボックス|アドレス4 |

A)

$(this.children()).each(function (ind){     

     var html = $(this).children().filter(".inOutControl").html(); 
     alert(html); 
}); 

B)

$("#list").sort(sortTest); 

     var sortTest = function(a,b){ 
      //return $(a).find(".inOutControl").html() > $(b).find(".inOutControl").html() ? 1 : -1;   
      return $(this, a).filter(".inOutControl").html() != $(this, b).filter(".inOutControl").html() ? 1 : -1; 
     }; 

PSアウト:thisに似ていますが、それは動作していない理由を私は知りません。誰もがそれを必要とする場合場合

+0

.............誰? – user403295

答えて

0

このworks..just ...

$("#list").sortList(); 

$.fn.sortList = function(){ 
     var $list = $(this); 
     var listItems = $list.children().get(); 
     listItems.sort(function(a,b){ 
      return $(a).find(".inOutControl").html() > $(b).find(".inOutControl").html() ? 1 : -1; 
     }); 
     $.each(listItems, function(idx, itm){$list.append(itm);}); 
     return this; 
    }; 
関連する問題