【问题标题】:jQuery tablesorter: custom html image tag sorter/parserjQuery tablesorter:自定义 html 图像标签排序器/解析器
【发布时间】:2023-04-05 23:32:01
【问题描述】:

我正在使用jQuery tablesorter plugin。它似乎工作正常,只是它不能以图像标签作为内容对行进行排序。我想实现一些只按图像标签的 src 属性排序的东西。我尝试了很多方法,但似乎无法让它发挥作用。

问题:

  • 插件没有使用图像解析器检测我的图像列,它检测到它使用digit 解析器,所以我必须手动指定图像解析器。
  • 传递给我的解析器的 format 函数的 s 参数似乎是空白/空/未定义(类似的东西,我不知道)。

代码:

JavaScript:

$.tablesorter.addParser({ 
    id: 'image', 
    is: function(s) {
        //i think this works
        return /^<img(.*)>$/.test(s);
    }, 
    format: function(s) { 
        //neither of these work
        return $(s).attr('src').toLowerCase();
        return s.match(/src="(.*)"/);
    },
    type: 'text' 
}); 
$(document).ready(function() { 
    $("table").tablesorter(); 
}); 

HTML:

<table>             
    <thead> 
        <tr> 
            <th>text column</th> 
            <th class="{sorter: 'image'}">image column</th>  
        </tr> 
    </thead> 
    <tbody> 
        <tr> 
            <td>a</td> 
            <td><img src="d.gif"></td> 
        </tr> 
        <tr> 
            <td>b</td> 
            <td><img src="c.gif"></td> 
        </tr> 
        <tr> 
            <td>c</td> 
            <td><img src="b.gif"></td> 
        </tr> 
        <tr> 
            <td>d</td> 
            <td><img src="a.gif"></td> 
        </tr> 
    </tbody>
</table>

【问题讨论】:

    标签: jquery jquery-plugins tablesorter


    【解决方案1】:

    给定标记的一种方法是废弃自定义解析器并执行以下操作。

    $("table").tablesorter({
         textExtraction:function(s){
            var $el = $(s),
            $img = $el.find('img');
            return $img.length ? $img[0].src : $el.text();
         }  
    });
    

    【讨论】:

    • 您在分配它的同一行上使用$el 变量(用逗号分隔)这一事实现在让我大吃一惊。但它有效!它现在解决了我的直接问题。谢谢!
    【解决方案2】:

    问题涉及tablesorter 在应该使用innerText 时使用innerHTML: jquery tablesorter custom parser - innerHTML vs. innerText

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-31
      • 1970-01-01
      • 2014-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多