Jquery条件语句?

时间:2016-07-16 07:58:44

标签: javascript jquery jquery-selectors

我正在尝试为onepageweb nav编写我的脚本。主要目标是在点击时更改选择器,第一部分工作正常,但第一个li是站点徽标,所以当我点击徽标时,我想添加.select秒li。 :

$(document).ready(function (){

    $(".main-nav li").click(function () {
        if (this = $(".main-nav li:first-of-type")) {
            $(this).next().addClass("selected")
                    .siblings().removeClass("selected");
        } else {
            $(this).addClass("selected")
                    .siblings().removeClass("selected");
        }
    });
});

并且这种情况不起作用

1 个答案:

答案 0 :(得分:3)

两个问题:

  1. 您正在使用=进行比较(if (this = $(".main-nav li:first-of-type")))。 =始终是分配。由于您无法分配到this,这是一个错误,不会发生任何其他事情。

  2. 如果您在那里使用=====,则无效,因为this将引用DOM元素,但返回值为{{1始终是一个jQuery对象。

  3. 你可能想要

    $()

    ...使用is来测试被点击的元素是否与给定的选择器匹配。

    附注:if ($(this).is(".main-nav li:first-of-type")) 应该有效,但由于:first-of-type元素只能 包含ul个元素,li也可以。{ / p>

    直播示例:

    :first
    $(document).ready(function() {
        $(".main-nav li").click(function() {
            if ($(this).is(".main-nav li:first-of-type")) {
                $(this).next().addClass("selected")
                    .siblings().removeClass("selected");
            } else {
                $(this).addClass("selected")
                    .siblings().removeClass("selected");
            }
        });
    });
    .selected {
      color: red;
    }