2013-02-04 44 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對不起,錯過了。 –

相關問題