Javascript选择器控制台日志

时间:2018-04-17 18:22:23

标签: javascript jquery css-selectors

当我运行代码并单击每个选项卡时,它必须在控制台上打印,我单击了哪个选项卡但是没有打印,有什么问题?

var main = function() {
    "use strict";

    $(".tabs a span").toArray().forEach(function(element) {

        $(element).on("click", function() {

            var $element = $(element);

            $(".tabs a span").removeClass("active");
            $(element).addClass("active");
            $("main .content").empty();

            if($element.parent().is(":nth-child(1)")) {
                console.log("FIRST TAB CLICKED");
            } else if($element.parent().is(":nth-child(2)")) {

                console.log("SECOND TAB CLICKED");
            } else if($element.parent().is(":nth-child(3)")) {
                console.log("THIRD TAB CLICKED");
            }

            return false;
        });


    });

};

1 个答案:

答案 0 :(得分:0)

您想要.parent().parent() - 现在您正在查看span,而span的父级是一个锚点。不是制表符元素。它会清理一下,以便做类似的事情。

var $tab = $element.parent().parent();
if($tab.is(".......")) {}

它会加快代码的速度,因为你没有在每个if语句块上检查链。