2013-08-29 5 views
21

В JQuery, выбирая более одного элемента можно сделать так:Как использовать несколько переменных объекта jquery в качестве селекторов?

$("#id1,#id2").show(); 

Но когда у меня есть два объекта JQuery, я, кажется, не быть в состоянии выбрать более чем один, используя сами переменные. Например:

var jqId1 = $("#id1"); 
var jqId2 = $("#id2"); 
$(jqId1).show();  // This works. 
$(jqId1,jqId2).show(); // This only shows jqId1. 

См jsFiddle: http://jsfiddle.net/jr9Q2/

Есть еще один способ задания множества JQ переменных в качестве селекторов?

+0

проверить это http://jsfiddle.net/jr9Q2/4/ –

ответ

43

Вы можете использовать add:

jqId1.add(jqId2).show(); 

Но не сделать код слишком сложным, только чтобы избежать запрашивая "#id1,#id2": этот селектор полагается на getElementById и очень быстро.

+0

Спасибо. Я хотел избежать повторения строки селектора, но, конечно, он может перейти в переменную, если это наиболее эффективный способ. –

+1

Возможно, я был неясен: использование '$ (" # id1, # ​​id2 ")' не является наиболее эффективным способом. Я просто хотел указать, что вы не должны беспокоиться о выступлениях здесь, но вы должны использовать то, что делает ваш код читаемым и простым. –

+1

Еще раз спасибо. Просто обнаружил свойство 'selector', так что теперь это' $ (jqId1.selector + ',' + jqId2.selector) '. :) –

9

Вы можете использовать каждый цикл:

$([jqId1, jqId2]).each(function(){ 
    $(this).show(); 
}); 

Как ответил здесь: Select multiple jQuery objects with .add()

+1

Является ли это быстрее/медленнее, чем принятый ответ? –