2010-05-22 37 views
1

我有以下的HTML代碼。我試圖做的是讓一個名爲javaRatingDiv的div在選中名爲java的複選框後被顯示。jquery access sibling TD在表

我似乎無法弄清楚如何通過jquery導航到表中的下一個TD。

<div id="languages"> 
    <table style="width:inherit"> 
    <tr style="height:50px; vertical-align:top"> 
    <td>Select the languages that you are familiar with and rate your knowledge:</td> 
    </tr> 
    <tr> 
    <table style="width:75%;" align="center"> 
    <tr id="tableRow"> 
     <td id="firstTD"><input type="checkbox" name="java" value="java" />&nbsp;Java</td> 
     <td id="secondTD" style="width:200px;"> 
     <div id="javaRatingDiv" style="display:none"> 
      <input name="javaRating" type="radio" value="1" class="star"/> 
      <input name="javaRating" type="radio" value="2" class="star"/> 
     </div> 
     </td> 
    </tr> 
    </table> 
    </tr> 
    </table> 
</div> 

回答

2

對於這個問題,並多次「javaRatingDivs」案件的緣故,這將複選框點擊功能在裏面工作:

$(this).parent().next().find('div').show(); 

.parent()獲取父元素 的.next()獲取下一個兄弟姐妹,如NEXT td 。找到(選擇器)讓你找到兄弟內的東西

這個信息是用於當你進入多個項目的問題,沒有ID直接引用的問題。在你上面的例子中,$('#javaRatingDiv')。show();會像帕特里克提到的那樣工作。

+0

這正是我正在尋找的。謝謝丹。它效果很好。欣賞這個解釋,因爲我對JQuery相當陌生。 – 2010-05-22 22:51:21

+0

既然這是你的事情:那麼,保留在你的工具箱中的一件事就是.parents()函數。如果'td'不總是高於上面的值,那麼類似這樣的操作將會起作用: $(this).parents('td:first')。next()。find('div.classOfYourRateDiv')。show() ; – 2010-05-22 23:34:20

+0

用於遍歷示例。我有一種感覺,這是OP可能想要的,但是走出了門。 :) – user113716 2010-05-23 11:53:13

1

由於div有一個ID,您可以直接訪問它。

$('#javaRatingDiv'); 

這將抓取ID爲'javaRatingDiv'的div

+0

謝謝。我實際上正在尋找訪問沒有ID的DIV。該ID可能會被刪除。這些將從數據庫加載,每個部分都沒有唯一的ID。無論如何要使用DOM結構訪問它?也許兄弟姐妹? – 2010-05-22 22:46:58