javascript - "this"未按预期工作

标签 javascript jquery this

我已经为此苦苦挣扎了一个小时,但我无法解决它。我刚开始在 javascript 上使用 this,但这真的很简单,而且无法正常工作。

这是 HTML

<ul class="nav pull-right nav-tabs" id="primarynav">
    <li class=" navlink">
        <a href="#">About</a>
    </li>
    <li class="navlink active">
        <a href="#">Portfolio</a>
    </li>
    <li class="navlink">
        <a href="#">Contact</a>
    </li>
</ul>

和js

$(document).ready(function(){
    $(".navlink").click(function(){
        $(".navlink").removeClass("active");
        this.addClass("active");
    });
});

所以它应该从所有类navlink的元素中移除类active,然后添加类active到单击的元素。但事实并非如此。

http://jsfiddle.net/Tckf7/

最佳答案

将其更改为:

$(this).addClass("active");

jsFiddle example

.addClass() 是一个 jQuery 方法,您一直在尝试将它应用于非 jQuery 对象(this vs $(this))。

关于javascript - "this"未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15418221/

相关文章:

javascript - 处理从 javascript 对象获取的数据

javascript - Angular JS 中的错误

javascript - 使用 moment JS 格式化日期以匹配

javascript - 需要帮助根据屏幕宽度删除或​​隐藏 div

javascript - 如何获取 Javascript 匿名函数的 "this"(作用域)?

javascript - jQuery 搜索是否找到子元素

javascript - 在弹出窗口中加载 javascript 依赖项

jquery - 图像未在 IE 中呈现

javascript - IIFE:var 与 this - 有什么区别吗?

c++ - 在 C++ 类方法中使用 *this 完全覆盖自实例化