我遇到了一些問題,我不確定它是瀏覽器還是CSS3。將nth-child僞選擇器應用於特定的行類
我有使用標準的HTML表格數據網格:
<table>
<thead>
...
</thead>
<tbody>
<tr class="found">
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
<tr class="found">
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
<tr class="found">
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
</tbody>
</table>
我有一個jQuery函數被搜索TD元素的含量。如果找到它,它將維護找到的類。如果找不到,那麼它將刪除找到的類並添加一個未找到的類。當然,沒有發現只是設置顯示:無
因此,搜索功能正在按我想要的方式工作。課程正在適當分配。但是,我使用CSS僞選擇器將樣式應用於交替行。
tr.found:nth-child(even) {
background: #fff;
}
tr.found:nth-child(odd) {
background: #000;
}
在搜索發生之前這樣做很好。但是,在應用搜索和未找到的類之後,僞選擇器似乎只適用於元素而不是元素和類。要麼是這樣,要麼是在頁面加載過程中應用僞選擇器,並在該點保持靜態。
我可以通過我的jQuery搜索並重新分配特定的偶數和奇數類,但這會變得混亂。這不是什麼大問題,但是我的列標題是可排序的,所以我不得不重新申請該事件的類,並創建一種效率低下的方法來做我正在做的事情。如果數據樣本太大,您可能會反覆看到類更改,這是我試圖避免的。
對此的任何解決方案?
編輯
按照要求,我設置一個的jsfiddle所以你天才才能玩具吧:http://jsfiddle.net/bDePR/
搜索總裁祕書或將產生的行爲。
一個很好的問題 - 我可能會建議創建的jsfiddle例子讓大家有一個合理的起點工作從... –
@KP。 - 我已經按要求添加了JSFiddle。 – Brian
'tr.found:nth-child(偶數)'正在計算每個'tr'元素,而不僅僅是具有'found'類的'tr'元素,那就是你的問題。雖然我想不出一個像樣的解決方案..你可以從DOM中刪除元素並將它們放回。這可以工作,但不是很理想。嗯。好問題。 –