在Javascript中访问表格单元格的内容

时间:2011-05-16 03:51:42

标签: javascript html

我在HTML中的表格单元格中嵌套了一个复选框。如何从Javascript访问内部复选框?我见过的所有例子都改变了内部HTML本身,或视觉属性,这不是我感兴趣的。我已经尝试了childNodes数组,但它显然是空的。

4 个答案:

答案 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将是这些元素的集合。