考虑以下代码:
$('#main').on('click', 'a', function() {
console.log($(this));
});
$(this)
将始终对应于#main
元素而不是<a>
单击。我怎样才能得到<a>
被点击的?
谢谢!
编辑:
抱歉,你们似乎是对的:http: //jsfiddle.net/R2rJU/1/
我的问题是我将第二个选择器的结果保存到一个变量中,使其无法用作选择器。
考虑以下代码:
$('#main').on('click', 'a', function() {
console.log($(this));
});
$(this)
将始终对应于#main
元素而不是<a>
单击。我怎样才能得到<a>
被点击的?
谢谢!
编辑:
抱歉,你们似乎是对的:http: //jsfiddle.net/R2rJU/1/
我的问题是我将第二个选择器的结果保存到一个变量中,使其无法用作选择器。
this
指<a>
标签的点击处理程序。所以你做对了
如果要显式使用,则可以使用event.target
Event.Target
$("#main").html("clicked: " + event.target.nodeName);
不,你似乎误会了什么。this
将始终引用单击事件处理程序中被单击的 DOM 元素。
$('#main').on('click', 'a', function() {
console.log($('#main :selected').text());
});