这是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。我知道有一些类似的问题正在被问到,但我仍然无法使用其他答案来解决这个问题。
答案 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
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;