簡體   English   中英

如何在JavaScript變量中存儲多個jQuery選擇器?

[英]How do I store multiple jQuery selectors in a javascript variable?

顯然,如果多次使用jQuery選擇器,則最好將它們存儲在變量中(如果僅使用一次,則不是一個好主意)。

我的問題是,如何在變量中存儲可互換使用的多個選擇器。

例如,假設我選擇$('#object1, #object2) ,然后稍后選擇`$('#object1')。 如何創建可以與其他變量組合以創建多個選擇器的變量。

如果我這樣寫:

var object1 = "#object1";
var object2 = "#object2";

$(object1  + "," + object2);

我只會引用字符串#object1 ,而不是實際的選擇器。

那么,如何將多個選擇器存儲在變量中,以便它們可以互換使用?

問題不在於selector string ,而是對DOM元素的查詢 “問題”表示昂貴。 這就是為什么您只應查詢一個元素並存儲對其的引用。

var object1 = $('#object1'),
    object2 = $('#object2');

object1.some_method();

更新

參考您的評論:

jQuery提供了.add() 幫助方法,該方法允許連接jQuery對象:

object1.add(object2).method();

不完全確定我理解您的意思。 您想存儲jQuery對象,這樣就不必像某種緩存一樣不斷搜索它們了嗎?

var cache = new Object();
cache['#object1'] = $('#object1');
cache['#object2'] = $('#object2');

要檢索jQuery值,您只需調用cache['#object1']

您可以使用.add()

var object1 = $('#object1'), object2 = $('#object2');

object1.add(object2).addClass('couple');

要么,

var multiple = [object1[0], object2[0], ...];

$(multiple).addClass('party');

為什么不使用簡單的方法。

var severalVar = 'h1,h2,h3,h4,h5,h6';
 $(severalVar).hide()

選擇器是傳遞給$()fn的字符串。 返回與選擇器匹配的Elements的集合。 因此,此代碼沒有錯。

您的代碼也可以寫成

var object1 = "#object1",
    object2 = "#object2";

$(object1).add(object2).doSomething();

或可以進一步優化為

var object1 = $('#object1'),
    object2 = $('#object2');

object1.add(object2).doSomething();

其中doSomething可以是jQuery或jQuery插件定義的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM