Ламерский вопрос по обращению к селекторам

Тема в разделе "JavaScript", создана пользователем same_ivan, 29 июл 2015.

Модераторы: ZiX
  1. same_ivan

    same_ivan Постоялец

    Регистр.:
    1 авг 2014
    Сообщения:
    115
    Симпатии:
    65
    Возможно ли обратиться ко всем силекторам с одинаковым началом, к примеру:

    $('.lvl-1').click(function() {

    мне надо обратиться одновременно к таким же селекторам только .lvl-2 .lvl-3 .lvl-4
    не создавать же 10 функций?
     
  2. primehostnet

    primehostnet Постоялец

    Регистр.:
    28 июн 2015
    Сообщения:
    127
    Симпатии:
    23
    дайте им всем один идентификатор и посмотрите в сторону each
    Перейти по ссылке
    или если вы знаете сколько их будет никто не мешает перебирать через for, хотя это как по мне более криво
    Перейти по ссылке
     
  3. Viodele

    Viodele Механик

    Administrator
    Регистр.:
    17 дек 2011
    Сообщения:
    117
    Симпатии:
    495
    А что мешает всем этим объектам добавить дополнительный класс и хэндлить клик по объекту именно через этот класс?

    А вот так делать не стоит.
     
  4. primehostnet

    primehostnet Постоялец

    Регистр.:
    28 июн 2015
    Сообщения:
    127
    Симпатии:
    23
    отчего же?
     
  5. Viodele

    Viodele Механик

    Administrator
    Регистр.:
    17 дек 2011
    Сообщения:
    117
    Симпатии:
    495
    Оттого, что существуют некоторые стандарты программирования. Эти стандарты подразумевают, что идентификатор любого элемента DOM является уникальным и в результате выполнения функции getElementById будет возвращаться объект элемента, а не множество. DOM элементы могут иметь одинаковые классы стилей, одинаковые имена, но ни в коем случае не одинаковые идентификаторы. Не смотря на то, что в HTML5 такое обращение может работать, это один из главных признаков быдлокода.
     
    Solus_Rex нравится это.
  6. Absolute

    Absolute Крокодил ;)

    Регистр.:
    9 авг 2009
    Сообщения:
    377
    Симпатии:
    190
    Выбрать все элементы div, класс которых начинается на "lvl-"
    HTML:
    $('div[class^=lvl-]').click(function() {
      alert(this.className);
    });
     
    Solus_Rex и latteo нравится это.