この質問に対する回答を書きました:チェックボックスのクリックで次の td のコンテンツを取得する、回答は受け入れられました (この質問を書いている時点で)。
その意図は、入力チェックボックスを含む現在のセルに続くテーブルセルのテキスト値を見つけることでした。2 行目では (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());
}
};
}
}
2 行目 (およびコンソールへのログ) では確実に機能するように見えFOO
ますが、最初の行ではコンソールのログのみが記録されることに注意してくださいfalse
。私が犯している明らかな間違いはありますか?