我写了这个问题的答案:Fetch content of next td on checkbox click,答案被接受(在写这个问题时)。
目的是在包含输入复选框的当前单元格之后找到表格单元格的文本值;对于第二行,这是可行的(在 Chrome 18/WinXP 中),但在第一行中,评估的console.log(that.checked);
评估结果为 false(据我所知,不管它是否被检查)。
提供的 HTML:
<table>
<tr>
<td>
<input type=checkbox name=t>
</td>
<td width=25%>
FOOBAR
</td>
<td width=73%>
BAZ
</td>
</tr>
<tr>
<td>
<input type=checkbox name=t>
</td>
<td width=25%>
FOO
</td>
<td width=73%>
BAR
</td>
</tr>
</table>
还有我的 JavaScript:
var c = [];
c = window.document.getElementsByTagName('input');
for (var i = 0; i < c.length; i++) {
var that = c[i];
if (that.type == 'checkbox') {
that.onchange = function() {
console.log(that.checked);
if (that.checked){
console.log(that.parentNode.nextElementSibling.firstChild.nodeValue.trim());
}
};
}
}
请注意,它似乎对第二行(并记录FOO
到控制台)可靠地工作,但在第一行中,控制台仅记录false
. 我犯了一个明显的错误吗?