Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.08.2022, 16:04
Аспирант
Отправить личное сообщение для Alexprom Посмотреть профиль Найти все сообщения от Alexprom
 
Регистрация: 19.09.2018
Сообщений: 60

Как правильно передать данные по data-target?
Здравствуйте!
Хочу передать данные в кнопку по data-target
и все работает, но если кнопки имеют одинаковый ID то данные передадуться только в одну кнопку. А как передавать независимо от дублей, не понимаю и не пойму))

Подскажите пожалуйста, как решить...

$(options).each(function() {
                  //console.log($(this).parents('.form-group').find('label'));

                  str_opts += $(this).parents('.form-group').find('label').eq(0).text().trim();
                  str_opts += ": ";
                  str_opts += $(this).parent('label').text().trim();
                  str_opts += "<br/>";
                 // console.log(str_opts);

                  var pre = $(this).data('prefix');
                  var price = parseFloat($(this).data('price'));
                  if (pre.length != 0 && isNaN(price) == false) {
                      switch (pre) {
                          case '-':
                              total -= price;
                              break;
                          case '+':
                              total += price;
                              break;
                          case '=':
                              total = price;
                              break;
                          case '*':
                              total *= price;
                              break;
                          case '/':
                              total /= price;
                              break;
                          case 'u':
                              total = total + (($total * price) / 100);
                              break;
                          case 'd':
                              total = total - ((total * price) / 100);
                              break;
                          default:
                              break;
                      }
                  }
              });
              $("button[data-target='#" + btn_id + "'").html(str_opts);
              console.log(str_opts);
Ответить с цитированием
  #2 (permalink)  
Старый 20.08.2022, 16:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

Alexprom,
для однотипных элементов используют class, а не id. и тогда достаточно указать индекс нужного элемента, без всяких data-target
Ответить с цитированием
  #3 (permalink)  
Старый 20.08.2022, 16:54
Аспирант
Отправить личное сообщение для Alexprom Посмотреть профиль Найти все сообщения от Alexprom
 
Регистрация: 19.09.2018
Сообщений: 60

Сообщение от рони Посмотреть сообщение
Alexprom,
для однотипных элементов используют class, а не id. и тогда достаточно указать индекс нужного элемента, без всяких data-target
Вот так?
$("div[class='" + btn_id + "'").html(str_opts);

Если да, то так не работает(
Ответить с цитированием
  #4 (permalink)  
Старый 20.08.2022, 17:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

Alexprom,
$("div.class").eq(btn_index).html(str_opts);
Ответить с цитированием
  #5 (permalink)  
Старый 20.08.2022, 17:28
Аспирант
Отправить личное сообщение для Alexprom Посмотреть профиль Найти все сообщения от Alexprom
 
Регистрация: 19.09.2018
Сообщений: 60

Сообщение от рони Посмотреть сообщение
Alexprom,
$("div.class").eq(btn_index).html(str_opts);
Я явно делаю что-то не так...
<div class="btn_index-{{ modal_id }}"></div>


$("div.class").eq(" + btn_index + ").html(str_opts);


Все равно не работает..
Ответить с цитированием
  #6 (permalink)  
Старый 20.08.2022, 17:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

Сообщение от Alexprom
Все равно не работает..
где код?

<!DOCTYPE html>
<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
        .red {
            background-color: #FF0000;
        }
    </style>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script>
        $(function() {
            const btn = $('div.btn'),
                test = $('button.test');
            test.on('click', function() {
                const index = test.index(this);
                btn.eq(index).toggleClass('red');
            })
        });
    </script>
</head>

<body>
    <button class="test">01 click me</button>
    <button class="test">02 click me</button>
    <button class="test">03 click me</button>
    <button class="test">04 click me</button>
    <button class="test">05 click me</button>
    <div class="btn">1</div>
    <div class="btn">2</div>
    <div class="btn">3</div>
    <div class="btn">4</div>
    <div class="btn">5</div>
</body>

</html>
Ответить с цитированием
  #7 (permalink)  
Старый 20.08.2022, 18:15
Аспирант
Отправить личное сообщение для Alexprom Посмотреть профиль Найти все сообщения от Alexprom
 
Регистрация: 19.09.2018
Сообщений: 60

Сообщение от рони Посмотреть сообщение
где код?

<!DOCTYPE html>
<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
        .red {
            background-color: #FF0000;
        }
    </style>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script>
        $(function() {
            const btn = $('div.btn'),
                test = $('button.test');
            test.on('click', function() {
                const index = test.index(this);
                btn.eq(index).toggleClass('red');
            })
        });
    </script>
</head>

<body>
    <button class="test">01 click me</button>
    <button class="test">02 click me</button>
    <button class="test">03 click me</button>
    <button class="test">04 click me</button>
    <button class="test">05 click me</button>
    <div class="btn">1</div>
    <div class="btn">2</div>
    <div class="btn">3</div>
    <div class="btn">4</div>
    <div class="btn">5</div>
</body>

</html>
Вот этот код? файл.js
или какой? Я скину все что нужно
Ответить с цитированием
  #8 (permalink)  
Старый 20.08.2022, 18:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

Alexprom,
не могу помочь, проблема слабо локализована, всё что мог, код выше.
Ответить с цитированием
  #9 (permalink)  
Старый 20.08.2022, 23:15
Аспирант
Отправить личное сообщение для Alexprom Посмотреть профиль Найти все сообщения от Alexprom
 
Регистрация: 19.09.2018
Сообщений: 60

Сообщение от рони Посмотреть сообщение
Alexprom,
не могу помочь, проблема слабо локализована, всё что мог, код выше.
слабо локализована, в смысле слабо описана? Я могу сформулировать по лучше, просто иногда когда сахар в крови за 10 могу выдавать белиберду))
На ваш код выше я смотрел, немного разобрался, но как прикрутить тот ID что идет в data-target тупо не знаю. У меня получилось только присвоить класс если выбраны нужные опции через метод change и все.

Вместо присвоения класс, я поставил .html(str_opts) и все получилось но не совсем)) каждому диву btn я присвоил одинаковые параметры. А они должны исходить с + btn_id +
{% if (options) %} 
<div class="dm-com-vd-button-1"><button type="button" class="btn btn-primary open-options" data-toggle="modal" data-target="#sets-popup-{{ modal_id }}">{{ text_sets_options }}</button></div>
{% endif %}

И тут я засыпался...

Последний раз редактировалось Alexprom, 20.08.2022 в 23:17.
Ответить с цитированием
  #10 (permalink)  
Старый 21.08.2022, 08:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

Alexprom,
в вашем коде я не разобрался, но двух одинаковых id на одной странице не должно быть.
это всё, что на данный момент, я могу вам сказать.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать данные в JavaScript при наведении на ссылку? Sice Элементы интерфейса 0 22.01.2022 14:32
Как преобразовать данные? gsdev99 Элементы интерфейса 5 19.02.2020 16:47
Как правильно получить данные json (перевести в общую оласть видимости) Blondinka Общие вопросы Javascript 3 14.10.2015 21:36
Как передать данные из js haa Общие вопросы Javascript 0 07.08.2015 08:20
Как отправить данные в Form Data вместо Request Payload? Shitbox2 Angular.js 2 26.05.2013 22:40