当我运行代码并单击每个选项卡时,它必须在控制台上打印,我单击了哪个选项卡但是没有打印,问题是什么?
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;
});
});
};
你想要.parent().parent()
- 现在你正在看span
,而span
的父母是一个锚。不是制表符元素。它会清理一下,做些什么......
var $tab = $element.parent().parent();
if($tab.is(".......")) {}
它会加快代码的速度,因为你没有在每个if语句块上检查链。