2010-05-28 57 views
23

我試圖在用戶點擊「單擊」時在每個tr中獲取第一個td的值。Jquery-獲取表中第一個td的值

以下結果將輸出aa,ee或ii。我正在考慮使用最接近的('tr')..但它總是輸出「對象對象」。不知道該怎麼做。

我的HTML是

<table> 
<tr> 
    <td>aa</td> 
    <td>bb</td> 
    <td>cc</td> 
    <td>dd</td> 
    <td><a href="#" class="hit">click</a></td> 

</tr> 
<tr> 
    <td>ee</td> 
    <td>ff</td> 
    <td>gg</td> 
    <td>hh</td> 
    <td><a href="#" class="hit">click</a></td> 
</tr> 
<tr> 
    <td>ii</td> 
    <td>jj</td> 
    <td>kk</td> 
    <td>ll</td> 
    <td><a href="#" class="hit">click</a></td> 
</tr> 

</table> 

jQuery的

$(".hit").click(function(){ 

var value=$(this).// not sure what to do here 

alert(value) ; 

}); 

回答

53
$(this).parent().siblings(":first").text() 

parent給你周圍的鏈接<td>

siblings給出所有<td>標籤在<tr>

:first給出集合中的第一個匹配元素。

text()給出標籤的內容。

33

這應該工作:

$(".hit").click(function(){  
    var value=$(this).closest('tr').children('td:first').text(); 
    alert(value);  
}); 

說明:

  • .closest('tr')得到最近祖先是<tr>元素(因此,在這種情況下排在<a>元素是)。
  • .children('td:first')獲取此元素的所有子元素,但使用:first選擇器我們將其減少到第一個<td>元素。
  • .text()獲取元素

你可以從其他的答案看,還有比只有一個做到這一點的方式更裏面的文字。

+0

你都給予正確的答案!既然你已經有16K了,Tesserex先回答了我。我會將接受的答案提供給Tesserex。非常感謝! +1給你所有。 – FlyingCat 2010-05-28 17:50:09

+0

「.children('td:first')」就是我所需要的。 – radbyx 2013-11-28 06:31:01

3

安裝螢火蟲並使用console.log而不是alert。然後你會看到你訪問的確切元素。

4
$(".hit").click(function(){ 
    var values = []; 
    var table = $(this).closest("table"); 
    table.find("tr").each(function() { 
     values.push($(this).find("td:first").html()); 
    }); 

    alert(values);  
}); 

您應該避免$(".hit")這真的是效率低下。嘗試使用事件委派代替。

+0

我認爲OP想要獲取當前行中第一個單元格的值,而不是所有行。 – 2010-05-28 17:51:41

9

在上面的具體情況,你可以做父母/孩子雜耍。

$(this).parents("tr").children("td:first").text() 
+0

'最接近'只查找當前元素的祖先。你的第二個例子不起作用。你的第一個例子不起作用,或者是因爲parent()只在DOM層次上進行級別遍歷(你可能是指'parents()')。 – 2010-05-28 17:48:30

+0

爲正確性編輯。 – Inaimathi 2010-05-28 18:04:01

2

如果你需要得到所有TD的內部TR,但沒有設定這些ID,您可以使用下面的代碼:

var items = new Array(); 

$('#TABLE_ID td:nth-child(1)').each(function() { 
     items.push($(this).html()); 
}); 

上面的代碼將添加表內的所有第一單元爲Array變量。

您可以更改第n個孩子(1)這意味着您需要的任何單元格編號的第一個單元格。

希望此代碼可以幫助您。

0

獲取上點擊最後一個TD首款TD值表

$(this).parent().siblings(":first").text()