2016-03-26 1 views
-3

Я много думал о лучшем заголовке, но ... да, к сожалению, я не описал свою проблему.JS - JQuery Selection путается

У меня есть следующий код:

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

Обратите внимание, что я использую классы «чаты» и «Чат» - так что не запутаться

$(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 
}); 

Таким образом, только один из этих 3-х методов работы , но мне нужен хотя бы один неработающий, потому что у меня есть несколько div за пределами «.clubs» с идентификатором. Я надеюсь, что вы можете помочь мне! Спасибо за ваше время!

+0

Вы сказали нам, что не работает, но не то, что вы на самом деле пытаетесь достичь ...? –

+0

Я также рассказал вам, что работает - так и то, что я хочу достичь :) Я хочу добавить класс к элементу с классом: «chatroom» и id: var id в .chatrooms – dunnohowishouldnamemyself

+0

Хорошо, если у вас есть что-то, что работает, Что за вопрос? –

ответ

3

Если я прочитал это правильно, chatrooms - это идентификатор вашего div, а не класс. Таким образом, селектор jQuery должен быть #chatrooms вместо .chatrooms.

0

У вас есть несколько вопросов здесь. Во-первых, вы пытаетесь настроить таргетинг своего идентификатора «chatrooms» на .chatrooms. jQuery использует селектор CSS для целевых элементов, поэтому правильный формат для идентификаторов таргетинга - #chatrooms.

Следующая вы используете «.chatrooms > .chatroom#», что означает «нацелены на все элементы с КЛАССА из chatroom#, которые являются прямыми (первого уровня) детей всех элементов с КЛАССА из chatrooms».

Поскольку у вас нет каких-либо элементов с КЛАССА из chatroom#, ни у вас есть какие-либо элементы с КЛАССА из chatrooms искать детей, ваши результаты будут пустыми.

Вы можете освежить в CSS селекторов на http://www.w3schools.com/cssref/css_selectors.asp или на этом большом участке практики http://flukeout.github.io

Вы должны начать там, а затем вернуться к JQuery.

 Смежные вопросы

  • Нет связанных вопросов^_^