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