代码之家  ›  专栏  ›  技术社区  ›  Paul Tarjan

带链接的YUI数据表排序号

  •  1
  • Paul Tarjan  · 技术社区  · 16 年前

    我的专栏基本上是

    <td><a href="somewhere">399.99</a>
    

    如果我设置 parser:"number" 在列上,我得到一个空列,但如果没有,排序就不是数字排序。

    有没有更好的解析器可以处理数字周围的链接?

    代码用于 http://paulisageek.com/compare/cpu/

    2 回复  |  直到 12 年前
        1
  •  2
  •   Paul Tarjan    16 年前

    7个观点,一个新的最低纪录,当我找到答案。

    我必须定义自己的排序函数(使用未定义的第三个参数 http://yuilibrary.com/projects/yui2/ticket/2528649 )

    function sortNumbersWithLinks(a, b, desc, field) {
        a = a.getData(field).replace(/<[^>]+>/, '');
        b = b.getData(field).replace(/<[^>]+>/, '');
    
        a = parseFloat(a);
        b = parseFloat(b);
    
        return YAHOO.util.Sort.compare(a, b, desc);
    }
    
    var myColumnDefs = [
                 {key:"Name", sortable:true},
                 {key:"Performance", sortable:true, sortOptions:{sortFunction:sortNumbersWithLinks}},
                 {key:"Price", sortable:true, sortOptions:{sortFunction:sortNumbersWithLinks}},
                 {key:"Performance / Price", sortable:true, parser:"number"},
    ];
    
        2
  •  1
  •   Luke    16 年前

    必须为该字段定义一个自定义解析器,才能从标记汤中提取数字。

    有点像

    {
        key: 'num_in_there_somewhere',
        parser: function (html) {
            return +html.replace(/<.*?>|\s/g, '');
        }
    }
    
    推荐文章