2013-02-04 38 views
0

早些时候,我问following question如何使用JQuery添加一个HTML表格行,并知道表格单元格内的元素上的id。知道一个元素的ID,如何找到位于同一个表中的其他元素?

所以,加入新行后,该表看起来像现在这样:

<table id = "mytable"> 
    <tr> 
    <th>Hiring Manager</th> 
    <td><textarea id = "textComments" cols = "15"/></td> 
    </tr> 
    <tr> 
    <td></td> 
    <td> 
     <span class = "CharCounter"> 
      <span id="lblCharCounter">Label</span> 
      characters (500 max) 
     </span> 
    </td> 
</tr> 

我想知道的,知道的第一个元素的ID(即textComment),如何我可以选择位于下一行的第二个元素(即lblCharCounter)?

感谢帮助

+1

是的,但是,为什么不只是得到一个对它的引用您将追加之前?它有一个您在上一个问题中专门给出的ID,没有理由不通过该ID选择它。 '$(“#lblCharCounter”)' –

+0

问题是,我计算使用每个有文本区域的地方。我希望选择与textarea控件相关。假设某人按下某个键,我想控制将选择哪个标签。 – Richard77

+0

除非您使用类而不是ID,否则它将不起作用,ID必须是唯一的。但是,当您将上一个问题的代码附加到上面时,您应该保存对其的引用,而不是附加上然后尝试导航到该引用。 –

回答

3

我可能会一起去:

$('#textComment').closest('table').find('.CharCounter') 

或(来获取特定子span

$('#textComment').closest('table').find('.CharCounter').children() 

或类似的东西 - 最简单的方法是将除了ID之外的唯一类分配给要查找的元素。

http://api.jquery.com/closest

http://api.jquery.com/find

+0

击败了我。 '$ .fn.closest'和'$ .fn.find'结合语义类名是特别好的,因为当你的html改变时它们不会轻易破解。 – jchook

+0

在儿童功能中,我添加了儿童('[id * =“lblCharCounter”]'),它完美地工作。 – Richard77

1
var $area1 = $("#textComments"); 

然后使用:

$area1.parent().parent().next().find('#lblCharCounter") 
+0

这选择下一个TD(没有一个),所以你最终将选择0个元素。 –

+0

@KevinB对不起,错过了。 –

相关问题