【发布时间】:2015-12-17 16:24:31
【问题描述】:
我正在尝试为 TableSorter 编写一个自定义解析器,它允许我跨 HTML5 表中的多个标题动态排序字母等级。我疯了似的在谷歌上搜索,却找不到这样的例子。
我是新手,但认为这对于进行课堂分类、QA 报告等可能非常有帮助。在这里,我将 Free2Work 品牌排名整理成我可以在智能手机上使用的东西。
这里至少有两个问题:
- 我有一个在 Firefox 中工作,但是当我在 Chrome 中加载它时,排序似乎是随机的。我确定我在某处将错误的东西加载到数组中,但我不确定它是什么。
- “评级”列在 Firefox 中排序正确,但看起来其他列没有。所有列都使用相同的解析器。
这是我正在使用的 JavaScript:
$.tablesorter.addParser({
id: 'grades',
is: function(s) {
return false;
},
format: function(s) {
// format your data for normalization
return s.toLowerCase()
.replace("a+",12)
.replace("a",11)
.replace("a-",10)
.replace("b+",09)
.replace("b",08)
.replace("b-",07)
.replace("c+",06)
.replace("c",05)
.replace("c-",04)
.replace("d+",03)
.replace("d",02)
.replace("d-",01)
.replace("f",00);
},
type: 'numeric'
});
$(function() {
$('#brands').tablesorter({
headers: {
2: {sorter:'grades'},
3: {sorter:'grades'},
4: {sorter:'grades'},
5: {sorter:'grades'},
6: {sorter:'grades'}
}
});
});
这是[截断的] html。
<table id="brands" class="tablesorter table striped">
<caption>
Brand Ratings
</caption>
<thead>
<tr>
<th>Logo</th>
<th>Brand</th>
<th class="extractor-select sorter-grades">Rating</th>
<th class="extractor-select sorter-grades">Policy</th>
<th class="extractor-select sorter-grades">Honesty</th>
<th class="extractor-select sorter-grades">Monitor</th>
<th class="extractor-select sorter-grades">Workers</th>
<th>More</th>
</tr>
</thead>
<tbody>
<tr>
<td class="brand-logo"></td>
<td class="brand-name">Etiko</td>
<td class="brand-overall-grade aplus">A+</td>
<td class="aplus">A+</td>
<td class="aplus">A+</td>
<td class="a">A</td>
<td class="aplus">A+</td>
<td class="score-card-button">
<a href="http://widgets.free2work.org/frontend_ratings/public_view/1268">Scorecard</a>
</td>
</tr>
<tr>
<td class="brand-logo"></td>
<td class="brand-name">Pants to Poverty</td>
<td class="brand-overall-grade aplus">A+</td>
<td class="aplus">A+</td>
<td class="aplus">A+</td>
<td class="a">A</td>
<td class="aplus">A+</td>
<td class="score-card-button">
<a href="http://widgets.free2work.org/frontend_ratings/public_view/1270">Scorecard</a>
</td>
</tr>
<tr>
<td class="brand-logo"><img src="http://widgets.free2work.org/images/Brand/playtex_logo_black0.jpg"></td>
<td class="brand-name">Playtex</td>
<td class="brand-overall-grade a">A</td>
<td class="aminus">A-</td>
<td class="a">A</td>
<td class="a">A</td>
<td class="aminus">A-</td>
<td class="score-card-button">
<a href="http://widgets.free2work.org/frontend_ratings/public_view/458">Scorecard</a>
</td>
</tr>
<tr>
<td class="brand-logo"><img src="http://widgets.free2work.org/images/Brand/Hanes_Logo0.jpg"></td>
<td class="brand-name">Hanes</td>
<td class="brand-overall-grade a">A</td>
<td class="aminus">A-</td>
<td class="a">A</td>
<td class="a">A</td>
<td class="aminus">A-</td>
<td class="score-card-button">
<a href="http://widgets.free2work.org/frontend_ratings/public_view/456">Scorecard</a>
</td>
</tr>
<tr>
<td class="brand-logo"></td>
<td class="brand-name">Voodoo Hosiery</td>
<td class="brand-overall-grade b">B</td>
<td class="aminus">A-</td>
<td class="bminus">B-</td>
<td class="b">B</td>
<td class="d">D</td>
<td class="score-card-button">
<a href="http://widgets.free2work.org/frontend_ratings/public_view/1077">Scorecard</a>
</td>
</tr>
<tr>
<td class="brand-logo"><img src="http://widgets.free2work.org/images/Brand/AmericanBodyArmor0.jpg"></td>
<td class="brand-name">American Body Armor</td>
<td class="brand-overall-grade f">F</td>
<td class="f">F</td>
<td class="f">F</td>
<td class="f">F</td>
<td class="f">F</td>
<td class="score-card-button">
<a href="http://widgets.free2work.org/frontend_ratings/public_view/750">Scorecard</a>
</td>
</tr>
</tbody>
</table>
任何人都知道我在这里如何误解了某些东西?我有点过头了。
【问题讨论】:
-
这里有一个小提琴,如果有人感兴趣的话:jsfiddle.net/01eL3a6w/1
标签: javascript html google-chrome sorting tablesorter