Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何排序LI';这是基于他们的身份证_Jquery_Html_Sorting - Fatal编程技术网

Jquery 如何排序LI';这是基于他们的身份证

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<

尝试一系列解决方案,但没有可行的结果。我有一个代码,它获取跨度的值并为LI创建一个ID。然后我想根据李的ID对这些李的降序进行排序。帮助?谢谢

<!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() {