2013-09-01 131 views
1

有人可以告訴我如何獲得第一個0123.a錨點的innerHTML嗎?我似乎無法得到這個權利。我正在尋找的是「測試1」和「測試2」的值。如何獲得嵌套節點的innerHTML

<tr> 
    <td data-pid="2"><a data-pid="2" href="#"><a href="#">test 1</a></td> 
    <td><a data-pid="2" class="manage-icon" href="#"><img alt="" src="delete.png"></a></td> 
</tr> 
<tr> 
    <td data-pid="3"><a data-pid="3" href="#">test 2</a></td> 
    <td><a data-pid="3" class="manage-icon" href="#"><img alt="" src="delete.png"></a></td> 
</tr> 

編輯: 對不起,不解釋事件。我需要爲點擊行的innerHTML。所以,如果我點擊第33行,它的值是「test 33」,那就是我需要看到的。

我使用點擊功能:

$(document).on("click",".manage",function(e){... 
+0

在什麼情況下,響應*什麼*?你是否希望在每次發生時都使用'test1' *和*'test2',並且將它們當作字符串或數組?當你說'看起來似乎無法得到這個權利'時,你能告訴我們你試過了什麼嗎? –

回答

4

試試這個,假設你在圖像上單擊(如果你想的鏈接觸發,而不是,只是改變imga):

$('img').click(function() { 
    console.log($(this).closest('tr').find('a').html()); 
}); 

但是,您的HTML有一個錯誤(未關閉錨點)。

jsFiddle example

+0

這是返回值的第一行,而不是第二個,這是我點擊的那個 – NaN

+0

已更新爲相對於圖像或鏈接點擊。 – j08691

+0

謝謝,J.我現在就試試。 – NaN

3

我建議:

$('tr').click(function(){ 
    var aText = $(this).find('td:first-child a').html(); 
}); 

JS Fiddle demo

需要注意的是,在演示中,我編輯的第一行的各元素的HTML以匹配第二行的第一td的元素的格式(額外a開放標籤似乎是一個錯誤,但如果這是故意的,那麼jQuery可以修改)。

參考文獻:

+0

謝謝戴夫。我現在試試這個 – NaN

+0

首選多元素查詢(即使用$(this).find(「td:first-child」)。find(「a」)'而不是'$(this) .find(「td:first-child a」)'),因爲它們跑得更快。 –

+0

戴夫,這是什麼'this'參考? – NaN

0

要獲得innerHTML的值,它是你提到的爲test1,test2的你可以使用這樣

$('td a').text(); 

.text()功能。如果你想利用TD的第一個孩子,那麼你可以這樣做:$('td:first-child a').text();

0

對於我想你指的是text
順便說一句,您在此行中有一個錯誤:

<td data-pid="2"><a data-pid="2" href="#"><a href="#">test 1</a></td> 
              ^^^^^^^^^^^^ extra 

,比這可能幫助:LIVE DEMO

$('table tr').click(function(e){ 
    e.preventDefault();     // prevent unwanted anchor click behavior 
    var txt = $('td a', this).text(); // use .html() if you need to 
    alert(txt);      // Test text value 
}); 

如果你填充動態你的表,比去:

$('table').on('click', 'tr', function(e){ 
+0

謝謝羅科的回答。無論如何,我會試試看看它是否有效。我仍然試圖通過JQ來學習我的方法 – NaN

+0

這很奇怪,因爲我的代碼沒有得到任何回報。雖然工作是:'$(this).closest('tr')。find('a')。html();' – NaN