私は以下のようなテーブルを持っています
<table class = "gridHover">
<thead>
<tr>
<td colspan="2">
<label for="searchbox">Search:</label>
<input type="text" id="searchbox" />
</td>
</tr>
</thead>
<tbody>
<tr>
<td>Something</td>
<td>More text</td>
</tr>
<tr>
<td>Lorem ipsum</td>
<td>blah?</td>
</tr>
<tr>
<td>Test ipsum</td>
<td>Test?</td>
</tr>
</tbody>
テキストを入力するテキストボックスがあり、テーブル内のテキストが強調表示されます。私のjqueryコードは以下の通りです
$(document).ready(
function(){
$('#searchbox').keyup(
function(){
var searchText = $(this).val();
if (searchText.length > 0){
$('td:contains(' + searchText +')')
.addClass('searchResult');
$('td:not(:contains('+searchText+'))')
.removeClass('searchResult');
}
else if (searchText.length == 0) {
$('td.searchResult')
.removeClass('searchResult');
}
});
});
これは、より明確にして問題を再現するための私のフィドルへのリンクです。
テキストを入力すると、2 行目、つまり奇数行のテキストのみが強調表示されることがわかります。これは、私が以下のようなCSSルールを持っているためです
.gridHover tbody tr:nth-child(odd) td, .gridHover tbody tr:nth-child(odd) th {
background-color: #f9f9f9;
この css ルールを保持したいが、テキストに一致する行を強調表示したい。どうすればいいですか?