我在组合这两个特定的选择器时遇到了一些麻烦,而我对简单的选择器没有同样的问题。
这是我通常使用的(组合.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");
我需要采取特殊方式吗?感谢。
答案 0 :(得分: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
本身未被修改,它仍然只包含一个元素。
答案 1 :(得分:2)
我认为您需要, #
$("#toggle, #" + $(this).attr("id")).addClass("on");
// ^ change here