2016-03-26 25 views
-3

Daha iyi bir başlık hakkında çok düşündüm, ama ... Evet, benim sorunumu tarif eden hiçbir şey gelmedi.JS - JQuery Seçimi kafa karıştırıcı

Aşağıdaki kod var:

<div id="chatrooms"> 
    <div class="chatroom active" id="all">all</div> 
    <div class="chatroom" id="245332"></div> 
</div> 

Not I sınıfları "sohbet odaları" kullanmak ve "sohbet odasina" - çok karışık alamadım

$(document).on('click', ".chatroom", function(e){ 
    var id = e.target.id; 
    $('.active').removeClass('active'); 
    $('.chatrooms > .chatroom#' + id).addClass('active'); //doesn't work 
    $('.chatrooms').children('#' + id).addClass('active'); //doesn't work 
    $(this).addClass('active'); //works 
}); 

Yani bu 3 yöntem eserlerin tek ama en azından birinin çalışmasına ihtiyacım var, çünkü id ile ".chatrooms" dışında birden çok div var. Umarım bana yardım edebilirsin! Zaman ayırdığın için teşekkürler!

+0

Bize neyin işe yaramadığını anlattınız, ama aslında neyi başarmaya çalıştığınızı değil…? –

+0

Ayrıca size neyin çalıştığını da anlattım - ne de başarmak istediğim şey :) Sınıfla birlikte bir sınıfa eklemek istiyorum: 'chatroom' ve id: varlıklar in .chatrooms – dunnohowishouldnamemyself

+0

Eğer işe yarar bir şeyiniz varsa, soru nedir? –

cevap

3

Bunu doğru okursa, chatrooms, sınıfınızın değil, div kimliğinizdir. Bu nedenle jQuery seçici, .chatrooms yerine #chatrooms olmalıdır.

0

Burada birkaç sorununuz var. Öncelikle, 'chatroom'unuzun kimliğini .chatrooms ile hedeflemeye çalışıyorsunuz. jQuery, hedef öğeleri için CSS seçicilerini kullanır, bu nedenle hedefleme kimlikleri için doğru biçim #chatrooms olur. demektir

Sonraki kullanmakta '.chatrooms > .chatroom#' ediyoruz "CLASS CLASS chatrooms ait tüm unsurların doğrudan (birinci düzey) çocuklardır chatroom# ait ile tüm unsurları hedef alır." Eğer CLASS chatroom# ait ile herhangi bir elemana sahip, ne de çocuklara bakmak için bir CLASS chatrooms ait ile herhangi bir elemana sahip yapmayın yana

, sonuçlarınız boş olacak.

Sen http://www.w3schools.com/cssref/css_selectors.asp veya Orada başlamak ve sonra geri jQuery'ye gelmelidir http://flukeout.github.io

bu büyük uygulama sitesinde CSS seçicileri üzerinde fırça olabilir.