use*_*581 5 html checkbox html-table
我有一个HTML表,其中一列中有一个复选框。我想知道当用户单击带有javascript(不使用jquery)的复选框时如何获取行数据吗?谁能帮我这个忙吗?
谢谢
你可以尝试这样的事情:
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/
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)
如果您的选择直接在 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