我有一个列表,每行包含一个div。每个div的一个元素是标签。标签包含位于地图中的标记的输入/输出信息(也在阴影区域中)。我希望它们根据标签输入/输出状态进行排序。到目前为止我所做的是使用下面的代码。 用户可以更改阴影区域的比例,从而改变标记的状态。因此,应根据地图上标记的状态更新列表。所有标记IN应该在列表的顶部,并且出局应该放在'INs'之后。
**我有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:列表是这样的。
复选框|地址1 |在
复选框|地址2 |出
复选框|地址3 |在
复选框|地址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 :(得分:0)
这可行..如果有人需要它,以防万一...
$("#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;
};