我正在使用jQuery tablesorter plugin。它似乎工作正常,除了它不能将带有图像标记的行作为其内容进行排序。我想实现一些只能通过image标签的src属性进行排序的东西。我尝试过很多东西,但似乎无法让它发挥作用。
digit
解析器检测到它,因此我必须手动指定图像解析器。s
函数的format
参数似乎是空白/ null / undefined(类似的东西,我无法分辨)。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>
答案 0 :(得分:3)
给出标记的一种方法是废弃自定义解析器并执行以下操作。
$("table").tablesorter({
textExtraction:function(s){
var $el = $(s),
$img = $el.find('img');
return $img.length ? $img[0].src : $el.text();
}
});
答案 1 :(得分:0)
该问题涉及tablesorter在使用innerHTxt时使用innerHTML: jquery tablesorter custom parser - innerHTML vs. innerText