1

我在组合这两个特定的选择器时遇到了一些麻烦,而简单的选择器没有同样的问题。

这是我通常使用的(结合 .btn 和 .toggle):

$(".btn, .toggle").removeClass("on");

这些是我不能结合的两个(试图结合这个和#toggle + id attr):

$(this).addClass("on");
$("#toggle" + $(this).attr("id")).addClass("on");

需要明确的是,我正在尝试组合上述 2 个选择器,因为它们做同样的事情(添加类),这是完整的代码。

$(".btn").click(function() {
    $(".btn, .toggle").removeClass("on"); 
    $(this).addClass("on");
    $("#toggle" + $(this).attr("id")).addClass("on");
})

而我正在尝试,那是行不通的:

$(this, "#toggle" + $(this).attr("id")).addClass("on");

我需要这样做的特殊方法吗?谢谢。

4

2 回答 2

4

您可以使用.add()将元素添加到集合中:

$(this).add($("#toggle" + $(this).attr("id"))).addClass("on");

或者以更易读的方式:

var toggleId = "#toggle" + $(this).attr("id");
var $toggleElem = $(toggleId);
$toggleElem.add(this).addClass('on');

请注意,在这个例子中,变量$toggleElem本身没有被修改,它仍然只包含一个元素。

于 2012-08-16T01:08:57.227 回答
2

我认为你需要一个, #

 $("#toggle, #" + $(this).attr("id")).addClass("on");
 //        ^ change here
于 2012-08-16T00:54:56.103 回答