2010-09-10 52 views
0

如果我只有document.getElementById('btn_test')的引用,那么我怎样才能使用Javascript获得对第一个复选框输入元素的引用。也许是一个parent.parent?什么是安全的方式?如何获得对此DOM结构的引用?

<td> 
    <input type="checkbox" name="text_rnd_input"/> 
    <label> 
     <button id="btn_test" type="button"></button> 
    </label> 
</td> 

回答

4
btn_test.parentNode.parentNode.getElementsByTagName('input')[0] 

小心,如果你使用*Sibing性质,因为他们也选择文本节点(例如无形的人只有空格),因此通常不与任意的HTML可靠(认为压缩你的HTML通过删除空格)。

,并强调不可避免的:使用jQuery:

$btn_test.closest('td').children('input')[0] 
// or 
$btn_test.parent().prev('input') 
// or ... 
+0

+1烨,刚看到。你的作品:http://jsfiddle.net/gqcYC/ – 2010-09-10 12:22:13

+0

我强烈推荐遍历DOM的jQuery。它使它更容易... – jwueller 2010-09-10 12:23:44