我在使用第一列(第4列)中的链接的表上使用Tablesorter。问题是在FF和Chrome中,当按网址点击而不是链接内容时,它会对第一列进行排序。例如
<tr><td><a href="http://abc.com">zzz</a></td><td>11</td><td>22</td><td>33</td></tr>
<tr><td><a href="http://cba.com">aaa</a></td><td>11</td><td>22</td><td>33</td></tr>
<tr><td><a href="http://bbb.com">ccc</a></td><td>11</td><td>22</td><td>33</td></tr>
它将订购
zzz
ccc
aaa
而不是按字母顺序排列。这是故意的吗?是否有任何人可以建议的解决方案?
由于
答案 0 :(得分:8)
我遇到了同样的问题。找到Documentation中的解决方案。需要为链接添加解析器,以便在排序时从列中文本的开头删除<a>
标记。
以下是应该解决问题的代码:
<script type="text/javascript">
// add parser through the tablesorter addParser method
$.tablesorter.addParser({
// set a unique id
id: 'links',
is: function(s)
{
// return false so this parser is not auto detected
return false;
},
format: function(s)
{
// format your data for normalization
return s.replace(new RegExp(/<.*?>/),"");
},
// set type, either numeric or text
type: 'text'
});
// Apply "links" parser to the appropriate column
$(document).ready(function()
{
$("#MyTable").tablesorter({
headers: {
0: {
sorter: 'links'
}
}
});
</script>
答案 1 :(得分:2)
我通过在链接之前插入带样式display:none的span来修复它。在跨度中放置链接文本。
e.g。
<td><span style="display:none"><%= Html.Encode(item.Name) %></span>
<a href='<%= Url.Action("Edit", new {id=item.Id}) %>'>
<%= Html.Encode(item.Name) %></a>
</td>