您可以从 HTML 位中删除 onclick,并为每一行添加一个 ID 以显示/隐藏:
<tr>
<td>Member</td>
<td>
<input type="radio" name="member" value="student">Student<br>
</td>
<td>
<input type="radio" name="member" value="parent">Parent<br>
</td>
</tr>
<tr id="class" style="display:none">
<td>Class</td>
...
</tr>
<tr id="profession" style="display:none">
<td>Profession</td>
...
</tr>
并更改您的 JS,以绑定单击事件处理程序:
// Add this piece of script to the page header. Inline, or add to your JS file (preferably).
// On page load, it will attach the handler to the click event. Which means, the code will be executed every time the radio buttons are clicked.
$(function () {
$("input:radio[name=member]").on("click", function () {
$("#class").toggle($(this).val() == "student");
$("#profession").toggle($(this).val() == "parent");
});
});
看到它工作:http: //jsfiddle.net/R4gej/
更新
由于您似乎在使用此解决方案时遇到问题,因此您可以在下面找到应该放置在页面中的整个代码,包括 jQuery 库链接:
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<script type="text/javascript">
$(function () {
$("input:radio[name=member]").on("click", function () {
$("#class").toggle($(this).val() == "student");
$("#profession").toggle($(this).val() == "parent");
});
});
</script>
</head>
<body>
<table>
<tr>
<td>Member</td>
<td>
<input type="radio" name="member" value="student">Student<br>
</td>
<td>
<input type="radio" name="member" value="parent">Parent<br>
</td>
</tr>
<tr id="class" style="display:none">
<td>Class</td>
</tr>
<tr id="profession" style="display:none">
<td>Profession</td>
</tr>
</table>
</body>
更新#2
您已在评论中发布此解决方案不起作用。我已经测试了十几次,找不到一个问题。你确定你知道你在做什么?你知道如何调试一段 Javascript 代码吗?您是否正确添加了 jQuery 库?您是否将这段脚本加载到正确的位置?这比这里解释的要多。对不起,但我没有看到任何其他方式可以帮助你。
检查以下图像以查看它是否有效: