2017-01-02 62 views
1

我有以下標記的第一​​第一JQUERY選擇中的<tr>

<tr> 
    <td> 
     <a>foo</a></td> 
    <td>bar</td> 
    <td> 
     <a class="delete-btn">delete</a> 
    </td> 
</tr> 

現在,我已經迷上了使用jQuery $(".delete-btn")一個上click事件的問題是,點擊事件處理程序需要第一個元素(foo)中的文本。

我已經使用該調用getthin它:

$(this).closest("tr").children().first().children().first("a") 

但嚴重...它看起來錯了: - /也許有更好的方式來做到這一點?

+0

爲什麼不提供堆棧溢出js代碼片段的完整示例? –

+0

'$(this).closest('tr')。find('td:first-child a')'? –

+0

你應該閱讀[CSS選擇器](http://www.w3schools.com/cssref/css_selectors.asp)。 – djxak

回答

2

我不喜歡這樣,但...這是你在尋找什麼:

$(this).closest("tr").find("> td:first-child > a"); 
2

您可以使用jQuery的:first僞選擇的。

在這種情況下,你的整個選擇應該是:

  • $('tr td:first a:first')(對於第一隻<tr>
  • $('tr').find('td:first a:first')(每一個<tr>

例子:

$(document).ready(function(){ 
 

 
    $('.delete-btn').click(function(){ 
 
     $('tr').find('td:first a:first').hide(); 
 
    }) 
 

 
});
table, tr, td { 
 
border: 1px solid rgb(191,191,191); 
 
border-collapse: collapse; 
 
} 
 

 
td { 
 
padding: 12px; 
 
} 
 

 
.delete-btn { 
 
cursor: pointer; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<table> 
 
<tr> 
 
<td><a>foo</a></td> 
 
<td>bar</td> 
 
<td><a class="delete-btn">delete</a></td> 
 
</tr> 
 
<tr> 
 
<td><a>foo</a></td> 
 
<td>bar</td> 
 
<td><a>baz</a></td> 
 
</tr> 
 
</table>

+0

喲確實給了我正確的方向。代碼片段做得很好!然而,使用該選擇器,它總是會返回第一行的第一個。如果表格有多個行,我需要返回每個的第一個。 –

+0

也許我的意圖不夠清楚。我有一個有幾排的桌子。當我單擊最後一個單元格上的鏈接時,事件處理程序需要該特定行的第一個單元格上的第一個鏈接的文本。 @MaxArt和David Thomas都完成了這個任務。 –