2010-02-23 49 views
43

我單擊表格單元格中的鏈接。我需要在同一個表格行中獲取特定單元格的值。jQuery - 獲取與單擊元素相同行中表格單元格的文本值

<tr> 
    <td class="one">this</td> 
    <td class="two">that</td> 
    <td class="three">here</td> 
    <td class="four"><a href="#">there</a></td> 
</tr> 
<tr> 
    <td class="one">qwqw</td> 
    <td class="two">dfgh</td> 
    <td class="three">ui</td> 
<td class="four"><a href="#">there</a></td> 
</tr> 

我有一個點擊處理程序連接到第四個單元格中的鏈接。該點擊處理程序調用一個打開模式窗口的函數。當模式中的表單被提交時,我想也將td class =「two」的值從點擊該鏈接的行傳遞給此模式。

這裏是發送模式(問題區域越來越對VAR的東西正確的值)的功能:

var Send = function() { 
    var Name = $('#name').val(); 
    var Something = $(this).closest('td').siblings('.two').text(); // version 1. doesn't work 
    var Something = $(this).closest('tr').siblings('td.two').text(); // version 2 also doesn't work 
    var Something = $(this).attr('class'); // version 3. just a test but also doesn't work 
    $.ajax({ 
     async: false, 
     data: { name: Name, somedata: Something }, 
     type: 'POST', 
     url: the url 
    });   
}; 

的問題是,我不能得到的東西正確的值。它應該是td class = 2與單擊元素相同行中的值。

這一切的方式是。單擊目標鏈接,該鏈接調用名爲Send_Click()的方法。 Send_Click進行一些驗證,然後調用Send(),但Something的值永遠不會被填充。這是因爲this是不是我在想它是什麼? Hjelp!

+0

繼承人好文章http://codepedia.info/jquery-get-table-cell-td-value-div – 2017-08-31 07:31:45

回答

66

你想.children()代替(documentation here):

$(this).closest('tr').children('td.two').text(); 
+0

如何在這裏爲我的問題使用類似你的東西:http://stackoverflow.com/questions/26004056/how-to-retrieve-the-tr-data-on-the-same-row-within-gridview-using -jquery-modal-w(我在同一行中有一個鏈接,並在同一行中顯示來自另一列的一些數據。 – SearchForKnowledge 2014-09-23 20:42:02

4

所以你可以使用父(),以達到母公司TR,然後用找到二類

var Something = $(this).parent().find(".two").html();

採集TD或

var Something = $(this).parent().parent().find(".two").html();

使用盡可能多的父()什麼深度的點擊對象根據TR行

希望這個作品......

+0

請將評論作爲commen發表TS。不是答案。 – Sampson 2010-02-23 02:01:25

+0

對不起,我是新手在這裏... – 2010-02-23 02:17:12

+0

從我這裏沒有汗,雅辛。我很欣賞這些建議(並投票支持)。 – Stuart 2010-02-23 02:43:24

58

尼克有正確的答案,但我想補充你也可以得到單元格數據,而無需在類名

var Something = $(this).closest('tr').find('td:eq(1)').text(); 

:eq(#)具有基於零的索引(link)。

+0

如何在這裏爲我的問題使用類似你的東西:http://stackoverflow.com/questions/26004056/how-to-retrieve-the-tr-data-on-the-same-row-within-gridview-using -jquery-modal-w(我在同一行中有一個鏈接,並顯示來自同一行中另一列的一些數據。 – SearchForKnowledge 2014-09-23 20:49:33

+0

我一直在尋找這個,它與jQuery Mobile的效果很好,謝謝! – saman0suke 2015-05-21 16:30:14

+0

非常感謝。您的代碼岩石 – 2017-02-21 07:13:57

5

它應該很好地工作:

var Something = $(this).children("td:nth-child(n)").text(); 
+0

如何在此處使用類似於您的問題來解決我的問題:http://stackoverflow.com/questions/26004056/how-to-retrieve-the-tr-data-on-the-same -row-within-gridview-using-jquery-modal-w(我在同一行中有一個鏈接,並在同一行中顯示來自另一列的一些數據。 – SearchForKnowledge 2014-09-23 20:47:53

4

這也將工作

$(this).parent().parent().find('td').text() 
相關問題