jQuery TinySort混合文字和数字不起作用

时间:2012-07-01 09:19:44

标签: jquery sorting

尝试按收藏夹对MetaFilter上的评论进行排序。通过使用TinySort并抓取收藏夹链接中的title属性来执行此操作:

$('div.comments').tsort('span.smallcopy>span>span>a',{attr:'title',order:'desc'});

但混合文字和数字不正常,因为我得到了这个(5,58,4,3,39,32,2 ......)ex:http://i.imgur.com/7N1Ln.jpg

而不是(58,39,32,5,4,3,2 ......)

我正在使用最新的TinySort版本1.3.27

我甚至尝试从title属性中删除空格,没有运气:

$('span.smallcopy>span>span>a').attr('title', function() {
    return this.title.replace(/\s/g, ''); 
});

1 个答案:

答案 0 :(得分:1)

嗯...听起来像一个bug我明天下午会看看,如果确实是个bug,请更新源码。

-edit -

@title是一个字符串,因为它说'4人将此标记为收藏'。那么排序在技术上是正确的。

如果它只是一个数字,那么tinysort就会解析它并进行不同的排序。

因此,这里的解决方案可能是首先使用jQuery使用该标题设置额外属性,然后对其进行排序。比如这样:

$('span.smallcopy').find('a:last').each(function(i,el){
    var el=$(this);
    el.attr('data-favorites',parseInt(el.attr('title')));
});

然后进行排序。 还没有尝试过,但也许你应该调查这个http://tinysort.sjeiti.com/#returnonlysorted,因为源看起来很混乱(在div之后: - /)