javascript - 获取dom中的元素

标签 javascript jquery

我想知道是否有一种方法可以使用每个“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);

}

最佳答案

您没有传递所单击项目的引用。不过,我会避免使用内联事件处理程序(尤其是在使用 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);
}

关于javascript - 获取dom中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17666512/

相关文章:

javascript - 单线程 Javascript 中的 AJAX 实现

javascript - 更改元素背景图像而不是 sibling

jquery - 为 jquery 设置数据属性值似乎无法使其适用于 data()

javascript - 使用 javascript 或 jquery 编辑浏览器的查询字符串

javascript - cognitoUser.signOut() 未注销用户

javascript - Twitch Streamers freecodecamp 项目 - 显示问题

javascript - 如何捕获 Select2 下拉菜单上的滚动事件?

javascript - 在 php、ajax 和 javascript 中使用 post 方法

javascript - 如何使用 jquery/javascript 打印二维码

php - 如何确认浏览器是否安装了Firebug?