2010-09-10 53 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