Jquery 如何排序LI';这是基于他们的身份证
尝试一系列解决方案,但没有可行的结果。我有一个代码,它获取跨度的值并为LI创建一个ID。然后我想根据李的ID对这些李的降序进行排序。帮助?谢谢Jquery 如何排序LI';这是基于他们的身份证,jquery,html,sorting,Jquery,Html,Sorting,尝试一系列解决方案,但没有可行的结果。我有一个代码,它获取跨度的值并为LI创建一个ID。然后我想根据李的ID对这些李的降序进行排序。帮助?谢谢 <!DOCTYPE html> <html> <head> </head> <body> <ul id="dumb"> <li>cello<span>2987</span></li> <li>zello<
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<ul id="dumb">
<li>cello<span>2987</span></li>
<li>zello<span>1723</span></li>
<li>aello<span>3476</span></li>
</ul>
<script type='text/javascript' src='JQUERY INCLUDE'></script>
<script type="text/javascript">
$(document).ready(function() {
$('ul li span').each(function(){
var pubValue = $(this).html();
$(this).parent().attr('id', pubValue);
});
});
</script>
</body>
</html>
- 大提琴2987
- 泽洛1723
- aello3476
$(文档).ready(函数(){
$('ul li span')。每个(函数(){
var pubValue=$(this.html();
$(this.parent().attr('id',pubValue);
});
});
假设您的li节点有id
<ul id="test">
<li id="4112">blub</li>
<li id="1422">blaaah</li>
<li id="6640">hmmmm</li>
<li id="2221">one more</li>
</ul>
工作示例:詹迪击败了我。这是我的
$(function() {
$("li").sort(function(left, right) {
return parseInt($(left).attr("id")) - parseInt($(right).attr("id"));
}).each(function() { $("ul").append($(this)); });
});
我再补充一句,你需要
$(function() {
对于IE6用户,因为如果在加载其父元素之前尝试从dom中删除元素,IE6将崩溃
另外,.remove()是多余的,因为.append()处理这个问题。嗯,没有id。你的意思是想按span文本排序吗?@jAndy:OP有“获取span值并为LI创建ID的代码”。请参阅现有代码。不,在我的描述中,我描述了示例中已经存在的代码根据跨度的值创建ID。在那之后,我想根据他们的ID对李的进行排序(他们当然会在那一点上有ID)。哎呀,让我来吧!显然,在Safari中,您需要-
而不是
@patrick:很有趣,因此如果您想要一个升序列表,您需要更改顺序?jAndy-似乎就是这样。希望您进一步了解:如果排序所用的参数不是ID而是时间戳,并且保存在属性timestamp中,该怎么办=“1346467883”?返回parseInt(a.attr('timestamp'))>parseInt(b.attr('timestamp'))不支持该作业。Michaelalmost,请提前感谢。但是由于jQuery将纯DOM元素传递到这些方法中,因此我们需要调用.getAttribute()
,就像parseInt(a.getAttribute('timestamp'))>parseInt(b.getAttribute('timestamp'))如果该属性中没有“字母”,那么您也可以去掉整个“parseInt”,只需在调用getAttribute()
之前加上加号即可。
$(function() {