抱歉,我是 jQuery 新手。所以我有这个带有两个 if else 语句的 jQuery 代码,我想将其合并,因为我觉得这是不必要的重复。它们是有些不同的代码,因为一个作用于 ul#tabs li a
,另一个作用于 ul.tabs li a
。如何合并它们以提高性能?这是代码:
$(document).ready(function()
{
var hash = location.hash;
$(".tab_content").hide(); //Hide all content
if ($("ul#tabs li a[href='" + hash + "']").length)
{
$("ul#tabs li a[href='" + hash + "']")
.addClass("active")
.parent()
.addClass("active"); //Activate tab
$(hash).show();
}
else
{
do stuff
}
if ($("ul.tabs li a[href='" + hash + "']").length)
{
$("ul.tabs li a[href='" + hash + "']")
.addClass("active")
.parent()
.addClass("active"); //Activate tab
$(hash).show();
}
else
{
do stuff
}
});
如何合并这两个代码?
最佳答案
逗号运算符 ,
在 CSS 和 jQuery 中用于指定多个选择器:
var sel = $("ul.tabs li a[href='" + hash + "'], ul#tabs li a[href='" + hash + "']");
if (sel.length) {
sel.addClass("active").parent().addClass("active"); //Activate tab
$(hash).show();
}
else {
do stuff
}
您可以进一步减少重复:
var sel = $("ul.tabs, ul#tabs").find("li a[href='" + hash + "']");
....
关于javascript - 合并这两个 if...else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15736826/