Изменить одновременно два элемента

Тема в разделе "JavaScript", создана пользователем Sergo_Sev, 23 авг 2014.

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

    Sergo_Sev Творец

    Регистр.:
    14 июн 2008
    Сообщения:
    571
    Симпатии:
    188
    Задача изменить одновременно все элементы с одинаковым ID, в данном случае на странице два элемента с price_id="2", но меняется каждый из них по отдельности
    Как назвать параметр не столь важно( id="2" или даже class="2"), главное что бы значение параметра было цифровое

    Пример по ссылки Перейти по ссылке
     
  2. okyrok

    okyrok Создатель

    Регистр.:
    14 июл 2014
    Сообщения:
    22
    Симпатии:
    10
    ID то точно одинаковыми быть не могут - сработает только один, а что менять то надо? если например текст менять-то
    Код:
    $('span[price_id="2"]').html('новое значение')
     
  3. aurora2000

    aurora2000 Создатель

    Регистр.:
    24 авг 2014
    Сообщения:
    32
    Симпатии:
    4
    можно использовать конструкцию document.querySelectorAll("#price-id") - вернет оба объекта

    но два и более - одинаковых id на странице - это уже плохо
     
  4. Sergo_Sev

    Sergo_Sev Творец

    Регистр.:
    14 июн 2008
    Сообщения:
    571
    Симпатии:
    188
    По ссылке же пример наглядный что менять
    Две нижние строки с одним id должны меняться одновременно
    Или не с ID, а с другим параметром - баз разницы, главное что бы они менялись одновременно
     
  5. aurora2000

    aurora2000 Создатель

    Регистр.:
    24 авг 2014
    Сообщения:
    32
    Симпатии:
    4
    одновременно сразу - нет, перебором в цикле объектов - да.

    дать пример?
     
  6. Sergo_Sev

    Sergo_Sev Творец

    Регистр.:
    14 июн 2008
    Сообщения:
    571
    Симпатии:
    188
    Если не трудно то сразу на jsfiddle.net пример
     
  7. aurora2000

    aurora2000 Создатель

    Регистр.:
    24 авг 2014
    Сообщения:
    32
    Симпатии:
    4
  8. kise97

    kise97 Создатель

    Регистр.:
    22 июн 2012
    Сообщения:
    16
    Симпатии:
    2
    Я думаю стоит использовать аттрибут `data` и не заниматься засорением аттрибутов `class` и `id`.

    Вот готовый пример на jQuery -- Перейти по ссылке
     
  9. user8730

    user8730 Создатель

    Регистр.:
    16 авг 2014
    Сообщения:
    27
    Симпатии:
    7
    Интересно - а что является триггером для изменения?

    1) просто внешнее событие - тогда мой вариант ответа ниже в одно действие
    2) а если речь о том, что некое событие меняет один из элементов, и необходимо, чтоб другой элемент отреагировал (именно само изменение значения является триггером) - это другой вопрос

    P.S. Использовать атрибут ID для нескольких элементов - плохой стиль. Хотя браузеры и поддерживают это, и JQuery отработает корректно - но это перечит самой сути определения ID как обращение к единственному объекту в структуре DOM.

    HTML:
    <span data-id="1">1999 руб.</span>    <br>
    <span data-id="1">1999 руб.</span>    <br>
    <span data-id="2">1799 руб.</span>    <br>
    <span data-id="3">499 руб.</span>     <br>
    <span data-id="3">499 руб.</span>     <br>
    
      $('[data-id = "1"]').text("100 USD");
    
     
    Последнее редактирование модератором: 1 сен 2014