[英]Combining jQuery selectors with 'this'
我在合并这两个特定的选择器时遇到了一些麻烦,而使用简单的选择器则没有相同的问题。
这是我通常使用的(结合.btn和.toggle):
$(".btn, .toggle").removeClass("on");
这些是我无法组合的两个(尝试将其与#toggle + id attr组合):
$(this).addClass("on");
$("#toggle" + $(this).attr("id")).addClass("on");
为了清楚起见,我试图结合上面的两个选择器,因为它们做相同的事情(添加类),这是完整的代码。
$(".btn").click(function() {
$(".btn, .toggle").removeClass("on");
$(this).addClass("on");
$("#toggle" + $(this).attr("id")).addClass("on");
})
而我正在尝试,这是行不通的:
$(this, "#toggle" + $(this).attr("id")).addClass("on");
我需要采取一种特殊的方式吗? 谢谢。
您可以使用.add()
将元素添加到集合中:
$(this).add($("#toggle" + $(this).attr("id"))).addClass("on");
或者以更具可读性的方式:
var toggleId = "#toggle" + $(this).attr("id");
var $toggleElem = $(toggleId);
$toggleElem.add(this).addClass('on');
请注意,在此示例中,变量$toggleElem
本身未被修改,它仍然仅包含一个元素。
我认为您需要一个, #
$("#toggle, #" + $(this).attr("id")).addClass("on");
// ^ change here
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.