2010-05-22 38 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