2013-07-16 216 views
0

我想知道是否有辦法通過每個「a」元素上的onclick事件來獲取我表中每行的id屬性。我嘗試過類似的東西,但總是得到第一個:在DOM中獲取元素

<table id="myTable" class="tablesorter"> 
    <thead> 
<tr> 
<th class="header headerSortDown">Last Name</th> 
<th class="header">First Name</th> 
<th class="header headerSortUp">Email</th> 
<th class="header">Due</th> 
<th class="header">Web Site</th> 
<th class="header">Del</th> 
</tr> 
</thead> 
<tbody> 
<tr class="tableContent" id="1"> 
<td>Smith</td> 
<td>John</td> 
<td>[email protected]</td> 
<td>$50.00</td> 
<td>http://www.jsmith.com</td> 
<td><a onclick="getid();">Del</a></td> 
</tr> 
<tr class="tableContent" id="2"> 
<td>Bach</td> 
<td>Frank</td> 
<td>[email protected]</td> 
<td>$50.00</td> 
<td>http://www.frank.com</td> 
<td><a onclick="getid();">Del</a></td> 
</tr> 
<tr class="tableContent" id="3"> 
<td>Doe</td> 
<td>Jason</td> 
<td>[email protected]</td> 
<td>$100.00</td> 
<td>http://www.jdoe.com</td> 
<td><a onclick="getid();">Del</a></td> 
</tr> 
</tbody> 
</table> 


function getid(){ 

var id = $("a").closest(".tableContent").attr("id"); 
alert(id); 

} 

回答

0

更改HTML到:

<td><a onclick="getid(this);">Del</a></td> 

而JS到:

function getid(el) { 
    var id = $(el).closest(".tableContent").attr("id"); 
    alert(id); 
} 
+0

感謝您的答覆..我得到函數的getId意外標記這個(這個){} – adavia

+0

@ user1763639:在'的getId()'函數定義,更改兩次出現的'這''elem'或類似的東西。 '函數getid(elem){var id = $(elem).closest(...' –

+0

@CrazyTrain謝謝,修復了我的答案。 – Barmar

2

您未傳遞被單擊的項目的引用。我會避免內聯事件處理程序,但(使用特別是當jQuery的),並且做這樣的事情:

$(document).ready(function() { 
    $('.tableContent a').click(function() { 
     var id = $(this).closest('.tableContent').attr('id'); 
     alert(id); 
    }); 
}); 

只是爲了完整起見,這裏是你如何能與聯事件處理程序做到這一點:

<a onclick="getid(this);">Del</a>

function getid(obj){ 
    var id = $(obj).closest(".tableContent").attr("id"); 
    alert(id); 
}