有点奇怪。
<table>
<tr>
<td>feng</td>
</tr>
</table>
jQuery代码:
$('table tr').click(function(e){
console.log($(this)==null); //returns False
});
Chrome控制台输出False
,这是预期的。
但是,当我在函数中切换断点并触发事件时,我发现,如果我在Chrome 控制台中键入$(this)
,则会返回null
答案 0 :(得分:4)
this
“变量”实际上不是变量。我认为Chrome不会为this
建立一个值来匹配当前执行上下文中的值;坦率地说,这很难做到。
如果您希望能够调试这样的函数,只需确保将this
值放入常规的旧局部变量中:
var saveThis = this;
然后,$(saveThis)
应该适合你。
答案 1 :(得分:2)
当我打算将它传递给另一个函数时,我通常会发现保存“this”很方便。
var $this = $(this);