繁体   English   中英

将jQuery选择器与“ this”组合

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM