我正在尝试使用 tinysort 对我的表客户端进行排序,我也在使用引导程序进行响应,下面是我的表
<table id="issues" class="table table-condensed">
<thead>
<tr>
<th data-order="asc">#</th>
<th data-order="asc" class="hidden-xs">Application</th>
<th data-order="asc">Error</th>
<th data-order="desc" class="text-right hidden-xs">Occurences</th>
</tr>
</thead>
<tbody>
<tr data-id="77">
<td class="id">77</td>
<td class="application hidden-xs">my site is this 1</td>
<td class="message">
<span class="hidden-sm hidden-md hidden-lg small">my site is this 1</span>
<a href="www.google.com">null value returned</a></td>
<td class="occurences hidden-xs text-right">3742</td>
</tr>
<tr data-id="5685">
<td class="id">5685</td>
<td class="application hidden-xs">my site is this 2</td>
<td class="message">
<span class="hidden-sm hidden-md hidden-lg small">my site is this 2</span>
<a href="www.google.com">no value present</a></td>
<td class="occurences hidden-xs text-right">235</td>
</tr>
<tr data-id="547">
<td class="id">547</td>
<td class="application hidden-xs">my site is this 3</td>
<td class="message">
<span class="hidden-sm hidden-md hidden-lg small">my site is this 3</span>
<a href="www.google.com">value returned</a></td>
<td class="occurences hidden-xs text-right">14</td>
</tr>
</tbody>
</table>
下面是我的 Javascript
var table = document.getElementById('issues')
,tableHead = table.querySelector('thead')
,tableHeaders = tableHead.querySelectorAll('th')
,tableBody = table.querySelector('tbody')
;
tableHead.addEventListener('click',function(e){
var tableHeader = e.target
,textContent = tableHeader.textContent
,tableHeaderIndex,isAscending,order
;
while (tableHeader.nodeName!=='TH') {
tableHeader = tableHeader.parentNode;
}
tableHeaderIndex = Array.prototype.indexOf.call(tableHeaders,tableHeader);
isAscending = tableHeader.getAttribute('data-order')==='asc';
order = isAscending?'desc':'asc';
tableHeader.setAttribute('data-order',order);
tinysort(
tableBody.querySelectorAll('tr')
,{
selector:'td:nth-child('+(tableHeaderIndex+1)+')'
,order: order
}
);
});
这里的问题是,当我使用“错误”头进行排序时,它会使用 Span 对行进行排序,该跨度对于小型、中型和大型是隐藏的,并且仅在超小型设备中可见。
因此,当我从桌面排序时,它仍然使用该跨度进行排序。
我想要做的是它不应该使用该跨度对其进行排序,但它应该在小型、中型和大型设备中使用链接进行排序,而在超小型设备中使用跨度进行排序。
这是jsfiddle