jQuery获取链接ID

时间:2014-05-16 12:47:40

标签: javascript jquery html-table

我试图获取动态生成表的id属性。所以,如果我点击我想要的第一个链接" editEmploee-4"。

<table id="example" class="table span12 table-bordered table-hover">
   <thead>
      <tr>
         <th>Firstname</th>
         <th>Lastname</th>
         <th>Edit</th>
      </tr>
   </thead>
   <tbody>
      <tr>
         <td>Person 1</td>
         <td>Name Person 1</td>
         <td><a href="#" class = "editDialog" id="editEmployee-4"><img src="img/edit.png" height="20" /></a></td>
      </tr>
      <tr>
         <td>Person 2</td>
         <td>Name Person 2</td>
         <td><a href="#" class = "editDialog" id="editEmployee-5"><img src="img/edit.png" height="20" /></a></td>
      </tr>
      <tr>
         <td>Person 3</td>
         <td>Name Person 3</td>
         <td><a href="#" class = "editDialog" id="editEmployee-47"><img src="img/edit.png" height="20" /></a></td>
      </tr>
   </tbody>
</table>

我已经尝试过这段代码,但我总是得到相同的ID。

var data = $( "a[id][class=editDialog]" ).attr('id');

您是否知道如何获取动态生成的链接ID?

4 个答案:

答案 0 :(得分:5)

活动授权:

$(document).on("click", "#example a", function() {
    console.log(this.id); //id of clicked link
});

不确定动态生成多少表,但您通常希望使用容器元素而不是document

答案 1 :(得分:5)

$(".editDialog").click(function(e)
{
  e.preventDefault();
  var myID = $(this).attr("id");
 // do something with myID
})

答案 2 :(得分:2)

您可以在锚点的内部点击处理程序中使用this.id

$('.editDialog').click(function() {
    var data = this.id;
});

但由于您的表是动态生成的,因此该表及其中的元素将无法使用所有事件,在这种情况下,您需要应用事件委派技术以附加这些事件,例如在您的案例中单击这些新添加的元素:

$(document.body).on("click", "#example a", function() {
    var data = this.id;
});

实际上,当您将委托事件绑定到最近的静态父级而不是$(document)时,它会更有效。

答案 3 :(得分:0)

因为我们有一个班级&#34; editDialog&#34;在所有标签中。我们可以在JQuery或Java Script代码中使用它:

JQuery的::

$('.editDialog').bind('click', function(){
alert($(this).attr('id'));
});

Java Script ::

$('.editDialog').bind('click',function(){
var clickedID = this.id;
alert(clickedID);
});