The following code works just fine, and I am able to get the value of the first cell of a selected row:
document.getElementById("tst").onclick = function() {
var chosen = document.getElementsByClassName('selected');
var myTd = chosen[0].getElementsByTagName('td');
var rightCell = myTd[0];
console.log(rightCell.innerHTML);
}
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>table_js_test002.html</title>
<link href="css/test_table.css" rel="stylesheet">
</head>
<body>
<table id="table">
<tr>
<td>1 Ferrari F138</td>
<td>1 000€</td>
<td>1 200€</td>
</tr>
<tr class="selected">
<td>2 Ferrari F138</td>
<td>1 000€</td>
<td>1 200€</td>
</tr>
<tr>
<td>3 Ferrari F138</td>
<td>1 000€</td>
<td>1 200€</td>
</tr>
</table>
<input type="button" id="tst" value="OK" onclick="fnselect()" />
</body>
</html>
This also works:
var myTd = chosen[0].cells[0].innerHTML;
My question is, from my limited understanding of JavaScript and DOM Node Navigation, isn't <td>
a child of <tr>
? Why can't I get
var myTd = chosen[0].firstChild.innerHTML
to work?