0

我想知道是否有一种方法可以使用我在每个“a”元素上拥有的 onclick 事件来获取我在表的每一行中拥有的 id 属性。我尝试过这样的事情,但它总是得到第一个:

   <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>jsmith@gmail.com</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>fbach@yahoo.com</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>jdoe@hotmail.com</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);

}
4

2 回答 2

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);
}
于 2013-07-16T01:22:24.690 回答
0

将 HTML 更改为:

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

和 JS:

function getid(el) {
    var id = $(el).closest(".tableContent").attr("id");
    alert(id);
}
于 2013-07-16T01:22:43.977 回答