我无法实现看似简单的事情。不知道我哪里错了。请指教。 目标是突出显示一个表行是对应它的复选框被选中。我已经提到了几个关于使用.closest('tr')或.parent('tr')来解决这个问题的例子,但出于某种原因,我的情况是 - 它过度实现了它突出了所有行而不仅仅是一个被选中。
<tr class="EvenRowClass">
<td class="ColClass">
<div class="wrapClass" ">
<span class="tableCol" style="background: someimage.png") </span>
<span class="tableCol" style="background: someimage.png") </span>
<input id="Check1" class="selectCheck" type="checkbox"
onclick="highlightRow(this,Check1); return false;" value="Check1">
</div>
</td>
<td>SomeCode</td>
<td>SomeCode</td>
<td>SomeCode</td>
假设存在另一个此类代码块,其中每个复选框都有一个唯一的ID顺序)
function highlightRow(checkbox, id)
{
$("tr:parent").toggleClass("highlight", checkbox.checked);
}
上面的javascript选择表格中的所有内容以及页面的其余部分,无论它们是否被检查,并将高亮类应用于它。 我使用复选框选择器,.closest('tr'),。parent('tr')尝试了其他几个版本,但它们都没有为我工作。
提到的最后几个只是更好,因为它们影响表中的唯一内容,而不影响页面上的其他内容。
请指教。我已经摸不着头脑,现在开始受伤了。
答案 0 :(得分:1)
function highlightRow( checkbox, id ) {
$( checkbox ).closest( 'tr' ).toggleClass( 'highlight', checkbox.checked );
};
答案 1 :(得分:0)
试试这个:
function highlightRow(checkbox, id)
{
$(checkbox).parents("tr").toggleClass("highlight", checkbox.checked);
}