如何解决使用JavaScript更新表格单元格中的单选按钮
| 我正在尝试使用JavaScript更新由大公司管理的网站上单选按钮的选中状态。这就是问题所在–该页面的两个相关单选按钮具有重复的ID和名称,它们位于未命名表的一行单元格中。我要选择第一个。谢谢你的帮助。 以下是基本的html<table cellspacing=\'0\' cellpadding=\'0\' border=\'0\'>
<tr>
<td>
<img alt=\'spacer\' src=\'../Images/blank.gif\' width=\'10\' height=\'1\' border=\'0\' />
</td>
<td id=\'A-Q1_0200-1\' valign=\'top\'>
<font size=\'-1\'>
<input type=\'radio\' name=\'Q1_0200\' id=\'Q1_0200\' value=\'1\' onclick=\'FormChanged()\'
class=\'bodyInput\' />
</font>
</td>
<td colspan=\'1\' valign=\'top\' id=\'A-Q1_0200-1-T\'>
<font size=\'-1\'>
Yes
</font>
</td>
<td>
<font size=\'-1\'>
</font>
</td>
<td id=\'A-Q1_0200-2\' valign=\'top\'>
<font size=\'-1\'>
<input type=\'radio\' name=\'Q1_0200\' id=\'Q1_0200\' value=\'2\' checked=\'checked\' onclick=\'FormChanged()\'
class=\'bodyInput\' />
</font>
</td>
<td colspan=\'1\' valign=\'top\' id=\'A-Q1_0200-2-T\'>
<font size=\'-1\'>
No
</font>
</td>
</tr>
</table>
以下是我尝试更新收音机以选择第一个收音机选项的各种javascript示例。
document.getElementById(\'A-Q1_0200-1\').Q1_0201.checked=\'checked\';
document.getElementById(\'A-Q1_0200-1\').radio[0].checked=TRUE;
document.getElementById(\'Q1_0200\').checked=TRUE
document.getElementById(\'Q1_0200\').checked=’TRUE
解决方法
您不能有重复的ID,并且希望
getElementById()
可以正常工作。 ID表示\“ identity \”,并且每个ID必须是唯一的。这就是您的第3个和第4个示例失败的原因。
以下代码将通过其ID选择父对象<td>
,然后选择第一个后代input
并设置checked
属性。
document.getElementById(\'A-Q1_0200-1\').getElementsByTagName(\"input\")[0].checked = \"checked\";
,getElementById将返回您找到的第一个元素。如果要检查,请执行以下操作:document.getElementById(\'Q1_0200\').checked = \'checked\';
,这是JSFiddle演示:这将允许您选择radio类型的第一个元素。
一种方法是使用ѭ8并检查无线电的首次出现,但ID应该是唯一的。似乎无法控制:
var myInput = document.getElementsByTagName(\'input\');
for(var i=0; i<myInput.length; i++){
if(myInput[i].type == \'radio\'){
console.log(myInput[i]);
break;
}
}
console.log将为您提供以下元素:
<input type=\"radio\" name=\"Q1_0200\" id=\"Q1_0200\" value=\"1\" onclick=\"FormChanged()\" class=\"bodyInput\">
然后从那里可以将选定元素的选中设置为true:myInput[i].checked = true;
或myInput[i].checked = \'checked\';
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。