は、私はこのようなテーブルを持っている:ループを使用せずにHTMLテーブルの列を強調表示するにはどうすればよいですか?
<table>
<thead>
<tr>
<th id="col-1"><input type="button" class="some" value="Company" /></th>
<th>name</th>
<th>Adress</th>
<th>Zip</th>
<th>Place</th>
<th>Country</th>
</tr>
</thead>
<tbody>
<tr class="even">
<td headers="col-1">Some ltd</td>
<td>some name</td>
<td>some street</td>
<td>some zip</td>
<td>some town</td>
<td>some country</td>
</tr>
<tr class="odd">
<td headers="col-1">Corp</td>
<td>some name</td>
<td>some street</td>
<td>some zip</td>
<td>some town</td>
<td>some country</td>
</tr>
</tbody>
</table>
奇数と偶数行は異なるハイライトクラスoddHighとevenHighを持っています。私はこのような列を強調表示したい列のヘッダーのクリックで
:
$(".some").live("click", function() {
var val = $(this).closest("TH, th").attr('id'),
col = $("td[headers="+ val +"]"),
// set odd/even
i = col.closest("TR, tr").hasClass("odd") ? "oddHigh" : "evenHigh";
col.hasClass("colHigh") ? col.removeClass("colHigh "+i) : col.addClass("colHigh "+i);
});
これはoddHighと列全体を強調表示します。
選択範囲全体をループせずに最も近い行のクラスに応じて強調表示する方法はありますか?それとも私がcolOdd tr.oddのTD ...とcolEven tr.even TD ...とは、2つの別々のステートメントを使用からに設定する必要がありますか?
私はあなたがループなしで逃げることはできませんが、あなたは 'jquery.each'メソッドを使ってコードを単純化するかもしれません。 –