如何获取前一个元素的id?

时间:2016-12-14 07:46:47

标签: javascript jquery

这是html:

<li> 
    <a href="/someurl" id="4">some text</a>
    <i class="geta glyphicon glyphicon-remove-circle" onclick="deleteAnch();"></i>   
</li>

<li> 
  <a href="/otherurl" id="5">other text</a>
  <i class="geta glyphicon glyphicon-remove-circle" onclick="deleteAnch();"></i>

</li>

和jquery:

function deleteAnch () {
    var the_id = $(this).prev('a').attr('id');
    //also tried var the_id = $(this).closest('a').attr(id);
    console.log('The id is:', the_id);        
}

但在控制台我得到了

  

id为:undefined

这里有什么问题以及如何解决这个问题?

P.S。我知道有一些类似的问题正在被问到,但我仍然无法使用其他答案来解决这个问题。

1 个答案:

答案 0 :(得分:3)

您需要将当前元素内容(即ID DATETME 581 2016-12-14 15:32:47 580 2016-12-14 15:36:23 579 2016-12-14 15:36:21 578 2016-12-14 15:36:19 577 2016-12-14 15:32:39 576 2016-12-14 15:36:15 )传递给this内嵌点击处理程序。

deleteAnch

将功能修改为

<i class="geta glyphicon glyphicon-remove-circle" onclick="deleteAnch(this);"></i>

但是,当您使用jQuery时,您应该使用它绑定事件。传递function deleteAnch (elem) { var the_id = $(elem).prev('a').attr('id'); console.log('The id is:', the_id); } 的函数引用并删除内联单击处理程序

deleteAnch

&#13;
&#13;
function deleteAnch () {
    var the_id = $(this).prev('a').attr('id');
    console.log('The id is:', the_id);        
}

$('i.glyphicon-remove-circle').on('click', deleteAnch);
&#13;
function deleteAnch() {
  var the_id = $(this).prev('a').attr('id');
  console.log('The id is:', the_id);
}

$('i.glyphicon-remove-circle').on('click', deleteAnch);
&#13;
&#13;
&#13;