Javascript Access Childnode
Solution 1:
Since the var chkbox = row.cells[0].childNodes[0]
worked with this HTML:
<tr><td><input> type='checkbox'></td>
changing the HTML as follows:
<tr><td><divclass='input-containerh'><input> type='checkbox'></div></td>
means that row.cells[0].childNodes[0]
will now point to the div
element. To get the input
element inside div
, you just access the next level of children with childNodes
. So, in a nutshell, you can get access to your input
with this:
var chkbox = row.cells[0].childNodes[0].childNodes[0];
Solution 2:
(Just a comment)
If you use index to access child nodes, watch out:
<td><input ...></td>
behaves differently than
<td>
<input ...>
</td>
In the first case, there is only one node in the td. In the second one, there are three: the first one is a text node containing end of line and two spaces, the second one is the HTMLInputElement and the third one is again text node containing end of line.
Solution 3:
This is what the HTML looks like, together with the JavaScript objects:
<tr><td><divclass='input-containerh'><inputtype='checkbox'></div></td>
^
| ^
| +--- row.cells[0].firstChild
|
+------- row.cells[0]
As you can see, row.cells[0].firstChild
points to the <div class="input-containerh">
; so you need to go one further:
row.cells[0].firstChild.firstChild
Post a Comment for "Javascript Access Childnode"