我正在为jQuery插件tablesorter控件设置自定义textExtraction(可能不相关),并且排序适用于IE,但不适用于Chrome或Firefox。这是JavaScript代码的片段:
var searchResultsTables = $("table.FilterClass");
searchResultsTables.tablesorter({
widgets: ['zebra'],
widgetZebra: { css: ["Odd", "Even"] },
headers:
{
3: { textExtraction: function (node)
{
return $(node).find("img").length;
}
},
4: { sorter: false }
}
}
);
节点是<td>
(我相信)。有些单元格中有图像,有些单元格则没有。所以,基本上,这个列应该基于0/1进行排序。所有其他列排序都很好(第5列除外,正如您所见,设置为不可排序)。
以下是排序正在执行的html(2行):
<table class="SearchResultsTable FilterClass tablesorter">
<tr class="Odd">
<td class="SearchResultsCell RightBrownBorder NameCell">
<a href="/Candidate/2">Bill Clinton</a></td>
<td class="SearchResultsCell RightBrownBorder PartyCell">Democrat</td>
<td class="SearchResultsCell RightBrownBorder DistrictCell"></td>
<td class="SearchResultsCell RightBrownBorder IncumbentCell">
<img src="/Images/green_check_mark.gif" />
</td>
<td class="SearchResultsCell PoliticalSpectrumIndexCell"></td>
</tr>
<tr class="Even">
<td class="SearchResultsCell RightBrownBorder NameCell">
<a href="/Candidate/13">Newt Gingrich</a></td>
<td class="SearchResultsCell RightBrownBorder PartyCell" title="Party for Socialism and Liberation">Party for...</td>
<td class="SearchResultsCell RightBrownBorder DistrictCell"></td>
<td class="SearchResultsCell RightBrownBorder IncumbentCell"></td>
<td class="SearchResultsCell PoliticalSpectrumIndexCell"></td>
</tr>
为什么这在Chrome或Firefox中不起作用?
答案 0 :(得分:1)
我认为你不能在header选项中放入textextraction函数。
当我编写像你这样的例子时,我有了这个,并且它有效:
var searchResultsTables = $("table.FilterClass");
searchResultsTables.tablesorter({
widgets: ['zebra'],
widgetZebra: { css: ["Odd", "Even"] },
textExtraction: function (node)
{
if (node.cellIndex == 3)
{
return $(node).find("img").length;
}
else
{
return node.innerHTML
}
}
headers:
{
4: { sorter: false }
}
} );