2009-11-15 27 views
10

bak setleri 2 Üyelik ...Birleştirme/jQuery örneğin bu kodu

var $div = $('#my div'), 

    $ul = $('#somewhere ul'); 

nasıl her ikisi üzerinde bir jQuery yöntemini gerçekleştirebilir? Örneğin, bu işe yarar mı? Burada en iyi uygulama nedir?

$($div, $ul).addClass('my-new-class'); 

olmaz mıydı $ul bağlamında altında arama $div?

+0

'$ ('# benim div, #somewhere ul'). addClass ('benim yeni sınıf');' aslında, $ div.add ($ ul) .addClass ('benim yeni sınıf olarak '); – Sinan

+1

yalnız değilim görüyoruz şimdi diğer gün aynı şeyi düşündüm olurdu

$().add($div).add($ul).addClass('my-new-class'); 
ChaseMoskal

cevap

19

jQuery bunun için add yöntem sağlar deneyin. En sık karşılaşılan durum (add geçirilen), belirli bir seçici eşleşen jQuery kümesine daha fazla eleman eklemek, ama siz de standard union iki kümelerini gerçekleştirmek için kullanabilirsiniz:

$c = $a.add($b).addClass('foo') 

add sarılmış yeni döndürür this'un birleştirilmiş ve benzersiz kombinasyonunu ve verilen seti içeren set. $b'un değişmeden kaldığını unutmayın.

+0

Teşekkür ederim! Cevabın orada gizlendiğini biliyordum ... – alex

+0

'a' da değişmeden kalıyor mu? –

+0

'$ a' değişmeden kalır. (Bu eski bir iş parçacığı - şu anda jQuery 3.2.1 kullanıyor.) –

-2

$('#my div, #somewhere ul').addClass('my-new-class'); 

bakış here

+0

Çalışacağını biliyorum, ancak bazen komut dosyasının başında 2 önbellek oluşturdum ve daha sonra yöntemleri vb. Içinde yeniden tanımlamaktan kaçınmak istiyorum. – alex

3

Bu çok geç çok olduğunu biliyorum, ama aynı zamanda aşağıdakileri yapabilirsiniz:

evet, ben de ben :)
+0

Neden ilk boş mu? – alex

+2

'$ div.add ($ ul) ...' daha mantıklı ... Bu zaten mevcut cevaplara nasıl bir değer kattığını görmüyorum. –

+3

@FelixKling Bir satırda, çok değil. Ama arkasındaki kavramı kullanıyorum: 'var initted = $();' ... daha sonra, bir koşul altında, 'initted.add ($ foo) '... daha sonra, başka (karşılıklı olarak münhasır olmayan) koşul altında , 'initted.add ($ foo)' ... vb. Bir [boş set] (http://en.wikipedia.org/wiki/Empty_set) ile başlayabilmek, _extremely_ değerlidir. – Izkata