在HTML表格中选中复选框时获取行

use*_*581 5 html checkbox html-table

我有一个HTML表,其中一列中有一个复选框。我想知道当用户单击带有javascript(不使用jquery)的复选框时如何获取行数据吗?谁能帮我这个忙吗?

谢谢

Mar*_*ark 5

你可以尝试这样的事情:

HTML:

<table>
    <thead>
        <tr><th></th><th>Row Text</th></tr>
    </thead>
    <tr>
        <td><input type="checkbox" /></td>
        <td>Test</td>
    </tr>
    <tr>
        <td><input type="checkbox" /></td>
        <td>Test 2</td>
    </tr>
    <tr>
        <td><input type="checkbox" /></td>
        <td>Test 3</td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

JavaScript:

checkboxes = document.getElementsByTagName("input"); 

for (var i = 0; i < checkboxes.length; i++) {
    var checkbox = checkboxes[i];
    checkbox.onclick = function() {
        var currentRow = this.parentNode.parentNode;
        var secondColumn = currentRow.getElementsByTagName("td")[1];

        alert("My text is: " + secondColumn.textContent );
    };
} 
Run Code Online (Sandbox Code Playgroud)

JSFiddle:http://jsfiddle.net/markwylde/wzPHF/1/


Har*_*yan 5

HTML DOM解决您的问题

<script type="text/javascript">
    function getRow(n) {
        var row = n.parentNode.parentNode;
        var cols = row.getElementsByTagName("td");
        var i=0;
        while (i < cols.length) {
            alert(cols[i].textContent);
            i++;
        }
    } 
</script>

<table>
    <tr>
        <td><input type="checkbox" onclick="getRow(this)"  /></td>
        <td>aaa</td>
        <td>bbb</td>
    </tr>
    <tr>
        <td><input type="checkbox" onclick="getRow(this)" /></td>
        <td>ccc</td>
        <td>ddd</td>
    </tr>
    <tr>
        <td><input type="checkbox" onclick="getRow(this)" /></td>
        <td>eee</td>
        <td>fff</td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

编辑: 这个脚本会帮助你更多,我认为:

function getRow(n) {
    var row = n.parentNode.parentNode;
    var cols = row.getElementsByTagName("td");
    var i = 0;

    while (i < cols.length) {
        var val = cols[i].childNodes[0].nodeValue;
        if (val != null) {
            alert(val);
        }

        i++;
    }
}
Run Code Online (Sandbox Code Playgroud)


Nic*_*nko 0

如果您的选择直接在 td 中,请尝试以下操作:

sel.onclick = function(){
  row = this.parentNode.parentNode
  //then what you need
}
Run Code Online (Sandbox Code Playgroud)

请注意,首先您必须使用 document.getElementById() 或 document.getElementsByTagName() 找到 sel

此外,您可能需要处理 onchange 事件而不是 onclick