我有一个相当直截了当的问题。为什么我在点击功能中不能使用$('a.view').attr('id')
(代码中的参考// 1)?我尝试了它但它无效,但this.id
有效。我想我主要想知道下面代码的上下文中的区别:
displayRecord.php(以下链接调用点击功能):
echo '<td><a href="#" style="text-decoration: none;" id="'.$data['id'].'" class="view" ><input type="button" value="View" /></a></td>';
editTicket.php:
$('a.view').click(
function(e)
{
//1
var ticket_id = this.id;
dlg.load('displayRecord.php?id='+this.id, function(){
var escalationValue = '';
$.post('escalateValue.php',{post_ticket_id:ticket_id},
function(data) {
if (data == 'No'){
showCount();
}
});
dlg.dialog('open');
});
});
答案 0 :(得分:3)
$('a.view').attr('id')
可以匹配多个元素,如果您有多个具有view
类的锚点,那么如果您在click
事件中使用它,则不一定会获得所单击的元素。 this.id
仅指被点击的元素,也是最快的方式,但为了证明您也可以这样做:
$(this).attr('id'); // in the click event
答案 1 :(得分:1)
这样,看看您是否收到任何提醒:
$(document).on('click', 'a.view', function(e) {
alert($(this).attr('id'));
alert(this.id);
});