我在HTML中的表格单元格中嵌套了一个复选框。如何从Javascript访问内部复选框?我见过的所有例子都改变了内部HTML本身,或视觉属性,这不是我感兴趣的。我已经尝试了childNodes数组,但它显然是空的。
答案 0 :(得分:3)
如果您不使用jQuery,那么您可以这样做:
document.getElementsByTagName('input');
然后在它们中循环找到一个是复选框,parentNode是表格单元格。
或者只是简单地将ID添加到该复选框。
答案 1 :(得分:2)
如果您使用jquery非常简单;
$('table td input:checkbox')
更新
没有jquery。
<table id='table'>
...
<td><input name='input' type='checkbox' /></td>
</table>
var table = document.getElementById('table');
var inputs = table.getElementsByTagName('input')
var chkbox = [];
for (var i=0; i< inputs.length;i++) {
if (inputs[i].type == 'checkbox') {
chkbox.push(inputs[i]);
}
}
现在所有复选框都在chkbox数组
中如果您想从表单访问它也很容易:
var ckbox = document.formname.checkboxname;
答案 2 :(得分:0)
您可以使用ID ...
演示:http://jsfiddle.net/YTDeW/1/
document.getElementById('ck1').value;
...
<table>
<tr>
<td>checkbox 1<input type="checkbox" id="ck1" name="ck" value="check1" /></td>
<td>checkbox 2<input type="checkbox" id="ck2" name="ck" value="check2" /></td>
<td>checkbox 3<input type="checkbox" id="ck3" name="ck" value="check3" /></td>
</tr>
</table>
...
或者您可以获得具有相同name
属性的所有内容......
var y = document.getElementsByName('ck');
for (var i = 0; i < y.length; i++) {
document.getElementById('trace').innerHTML += "<br />" + y[i].value;
}
答案 3 :(得分:0)
如果您的输入是表单,那么您可以完全忽略该表以进行访问:
<form name="aForm" ...>
// Whatever table structure you like
<input name="anInput" ...>
</form>
您可以按以下方式访问输入:
var inp = document.aForm.anInput;
或更正式地表示:
var inp = document.forms['aForm'].elements['anInput'];
注意如果您在该表单中有多个名称为 anInput 的表单控件,inp
将是这些元素的集合。