Chrome控制台处理jQuery $(this)错误?

时间:2011-06-08 23:27:39

标签: javascript jquery google-chrome console this

有点奇怪。

<table>
    <tr>
        <td>feng</td>
    </tr>
</table>

jQuery代码:

$('table tr').click(function(e){
   console.log($(this)==null); //returns False
});

Chrome控制台输出False,这是预期的。 但是,当我在函数中切换断点并触发事件时,我发现,如果我在Chrome 控制台中键入$(this),则会返回null

2 个答案:

答案 0 :(得分:4)

this“变量”实际上不是变量。我认为Chrome不会为this建立一个值来匹配当前执行上下文中的值;坦率地说,这很难做到。

如果您希望能够调试这样的函数,只需确保将this值放入常规的旧局部变量中:

   var saveThis = this;

然后,$(saveThis)应该适合你。

答案 1 :(得分:2)

当我打算将它传递给另一个函数时,我通常会发现保存“this”很方便。

var $this = $(this);