【发布时间】:2009-12-29 18:22:11
【问题描述】:
我正在开发一个在线棒球/垒球记分簿应用程序。当用户更改选定 TD 内的单选按钮之一的值时,我想直观地更改特定表格单元格(特定 TD)的 CSS。
这是表格的 JPG:http://www.ppgeez.com/images/gt_ab.jpg
有 12 名玩家,每个玩家最多可以有 6 个 AB。下面的代码是一个玩家的单个 At-Bat (AB) 示例,您可以在其中指定玩家对该特定 AB 所做的事情。
<td>
<table border=1>
<tr>
<td>
<table border=0 cellspacing=0 cellpadding=0>
<tr><td><input type=radio name=p1o1 value="1B">1B
<td><input type=radio name=p1o1 value="FO">FO
<tr><td><input type=radio name=p1o1 value="2B">2B
<td><input type=radio name=p1o1 value="GO">GO
<tr><td><input type=radio name=p1o1 value="3B">3B
<td><input type=radio name=p1o1 value="FC">FC
<tr><td><input type=radio name=p1o1 value="HR">HR
<td><input type=radio name=p1o1 value="SF">SF
<tr><td><input type=radio name=p1o1 value="BB">BB
<td><input type=radio name=p1o1 value="K" >K
<tr><td><input type=radio name=p1o1 value="RE">RE
<td><input type=radio name=p1o1 value="DP">DP
</table>
<td valign=top align=center>
Run<br><input type=checkbox name=p1run1><br><hr>
RBIs<br><select name=p1rbi1>
<option value=0>0
<option value=1>1
<option value=2>2
<option value=3>3
<option value=4>4
</select><p>
<input type=radio name=p1o1 value="NA" checked>N/A
<td>
</table>
<td>
我想在视觉上突出显示(通过更改 TD 的背景颜色)每个“已完成”的 AB。基本上,当表单加载时,默认选择“N/A”单选按钮。如果选择了任何其他单选按钮(1B、2B、K 等...),则应突出显示该 TD。如果再次选择 N/A,则应取消突出显示。我不知道从哪里开始,任何帮助将不胜感激。谢谢!
更新:最终工作代码 - 我使用了下面的函数,但由于我使用的是嵌套表,因此技巧是使用 eq( x)。
$("td input[type=radio]").change(function () {
function clearTable(){
var table = $(this).parents('table:eq(0)');
$(table).removeClass('selected');
}
$('input[value="NA"]').click(clearTable);
var table = $(this).parents('table:eq(1)');
if (this.value != 'NA') {
table.addClass('selected');
}
});
更新 - 为所有表格指定特定类别
// 使用 atBat 类设置每个表 ABtables = $('input[type="checkbox"]').closest('table'); ABtables.each(function() { $(this).addClass('atBat'); });
【问题讨论】:
标签: javascript jquery css