2015-10-16 66 views
1

我在每一行都有一堆复选框。我如何找到复选框的位置1A或1B时,在第一行检查两个或一个复选框。我试图修改的页面根据行和列的两个因素动态生成表格。所以我只需要抓住rowname和colname来进一步编程。例如10(A)如果第一行的名称是'10'。如何获取表格中已选中的复选框的位置

<table id="mytable"> 
    <tr> 
     <td> </td> 
     <td align="center"> A </td> 
     <td align="center"> B </td> 
    </tr> 
    <tr> 
     <td> 1 </td> 
     <td><input type="checkbox" /></td> 
     <td><input type="checkbox" /></td> 
    </tr> 
    <tr> 
     <td> 2</td> 
     <td><input type="checkbox" /></td> 
     <td><input type="checkbox" /></td> 
    </tr> 
    </table> 
    <tr> <button id="save">Click</button> </tr> 
+0

你为什么不给你的复选框的名字呢? –

+0

@MarcoAurélioDeleu是否这样? '​​' – Kaur

+0

你想完成什么? –

回答

1

这将让一个检查input的行和列,连带列字母和行号通过调用document.querySelector,使用CSS3 first-childnth-child选择基于列和行:

document.getElementById('mytable').addEventListener('click', function(e) { 
 
    if(e.target.tagName === 'INPUT') { 
 
    var td= e.target.parentNode, //the input's td parent 
 
     tr= td.parentNode,   //the td's tr parent 
 
     col= td.cellIndex,   //the input's column 
 
     row= tr.rowIndex,   //the input's row 
 
     header= document.querySelector('#mytable tr:first-child td:nth-child('+(col+1)+')').textContent, 
 
     number= document.querySelector('#mytable tr:nth-child('+(row+1)+') td:first-child').textContent; 
 
    
 
    document.getElementById('output').textContent= number+header; 
 
    } 
 
});
<table id="mytable"> 
 
    <tr> 
 
    <td></td> 
 
    <td align="center">A</td> 
 
    <td align="center">B</td> 
 
    </tr> 
 
    <tr> 
 
    <td>1</td> 
 
    <td> 
 
     <input type="checkbox" /> 
 
    </td> 
 
    <td> 
 
     <input type="checkbox" /> 
 
    </td> 
 
    </tr> 
 
    <tr> 
 
    <td>2</td> 
 
    <td> 
 
     <input type="checkbox" /> 
 
    </td> 
 
    <td> 
 
     <input type="checkbox" /> 
 
    </td> 
 
    </tr> 
 
</table> 
 

 
<div id="output"></div>

+0

感谢您的帮助。这里是我如何使用它[JSfiddle](http://jsfiddle.net/kaur/8qpsgez0/31/),但它不适合我。 – Kaur

+1

这是因为你在混合使用JavaScript和jQuery。试试这个:http://jsfiddle.net/py3m1v6z/ –

+0

完美!谢谢! – Kaur

1

试试这个@普通的JavaScript:

var checkboxes = []; 
for(var i =0; i<document.getElementsByTagName("input").length;i++) { 
if(document.getElementsByTagName("input")[i].checked) {checkboxes.push(i)} 
} 

复选框是一个选中复选框的数组 - 例如, [0,2],如果第一个和第三个复选框被选中

+0

这将适用于我。谢谢! – Kaur

+0

如果第一行的行名是'10',第二行是'2',那么我需要在复选框数组中获得10,2。 – Kaur

0

或像这样:

https://jsfiddle.net/zLy90w40/1/

function getCheckBox(){ 
    var oneA = document.getElementById('1a'); 
    var oneB = document.getElementById('1b'); 
    var twoA = document.getElementById('2a'); 
    var twoB = document.getElementById('2b'); 
    if (oneA.checked){ 
     alert("1 A was checked") ; 
    } 
    if(oneB.checked){ 
     alert("1 B was checked") ; 
    } 
    if(twoA.checked){ 
     alert("2 A was checked") ; 
    } 
    if(twoB.checked){ 
     alert("2 B was checked") ; 
    } 
    } 
相关问题