.addClass不工作

McD*_*ett 2 jquery

我试图使用.addClass()向div添加一个类

以下是我尝试这样做的方法:

<script>
$("#circle").hover(function() {
    ("#circle").addClass("new_style");
});
</script>
Run Code Online (Sandbox Code Playgroud)

我有这个div

<div id="circle" class="lol"></div>
Run Code Online (Sandbox Code Playgroud)

检查元素并查看控制台后,我可以看到错误

"Uncaught TypeError: Object #circle has no method 'addClass' "
Run Code Online (Sandbox Code Playgroud)

Mat*_*all 7

$以前错过了一次("#circle"):

$("#circle").hover(function() {
    $("#circle").addClass("new_style");
});
Run Code Online (Sandbox Code Playgroud)

但是,您根本不需要为该元素重新查询DOM!

$("#circle").hover(function() {
    $(this).addClass("new_style");
});
Run Code Online (Sandbox Code Playgroud)

即使这样,你也不需要重新jQuery-ify那个对象.重用jQuery对象可以降低性能:

var $circle = $("#circle");

$circle.hover(function() {
    $circle.addClass("new_style");
});
Run Code Online (Sandbox Code Playgroud)

有趣的是,无论是JSLint的也不JSHint抓住了这个草率的错误.