2011-07-26 92 views
0

我有一個列表,每行包含一個div。每個div的一個元素是一個標籤。標籤包含位於地圖中標記的輸入/輸出信息(也位於陰影區域中)。我希望它們根據標籤的進/出狀態進行排序。我到目前爲止所做的是在下面的代碼。 用戶可以更改改變標記狀態的陰影區域的比例。因此,應根據地圖上的標記狀態更新列表。所有的標記IN都應該在列表的最上面,而輸出應該放在'INs'之後。jquery根據div元素的狀態對列表進行排序

**我已經有了30行的方法,我想用這個方法。

A是我的測試循環代碼,以確保我具有正確的輸入/輸出標籤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:表是某事像這樣。

複選框| address1 |在

複選框| address2 | Out

複選框| address3 |在

複選框|地址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; 
    }; 
相關問題