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