簡體   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