За последние 24 часа нас посетили 20568 программистов и 1009 роботов. Сейчас ищут 383 программиста ...

JQuery вывод новой цены при выборе поля из списка

Тема в разделе "JavaScript и AJAX", создана пользователем LeoPro, 10 июн 2018.

Метки:
  1. LeoPro

    LeoPro Активный пользователь

    С нами с:
    29 мар 2017
    Сообщения:
    14
    Симпатии:
    5
    Проблема в команде внутри условия

    Код (Javascript):
    1. $('.available select').on('change', function () {
    2.     var modId = $(this).val(),
    3.             title = $(this).find('option').filter(':selected').data('title'),
    4.             price = $(this).find('option').filter(':selected').data('price'),
    5.             basePrice = $('#base-price').data('base');
    6.     if (price) {
    7.         $('#base-price').text(price),
    8.                 $('#base-price').html("&nbsp;<i class=\"fas fa-ruble-sign iruble\"></i>");
    9.     } else {
    10.         $('#base-price').text(basePrice).html("&nbsp;<i class=\"fas fa-ruble-sign iruble\"></i>");
    11.     }
    12. });
    Первый раз использую JQuery

    У меня есть код на html где выводиться сумма и иконка рубля

    HTML:
    1. <span id="base-price" data-base="<?=$product->price; ?>" class="price"><?= $product->price; ?>&nbsp;<i class="fas fa-ruble-sign iruble"></i></span>
    upload_2018-6-10_16-36-24.png


    выбираю из списка количество роз и должна через Jquery меняться цена

    нужно чтобы после цены подставлялась иконка рубля также как в этой строке:

    HTML:
    1. <span id="base-price" data-base="<?=$product->price; ?>" class="price"><?= $product->price; ?>&nbsp;<i class="fas fa-ruble-sign iruble"></i></span>
    Как соединить (вложить) в span с прайсом $nbsp; и иконку рубля? В строке ниже.

    Код (Javascript):
    1. $('#base-price').text(price + html("&nbsp;<i class=\"fas fa-ruble-sign iruble\"></i>"));
     
    #1 LeoPro, 10 июн 2018
    Последнее редактирование: 10 июн 2018
  2. username

    username Новичок

    С нами с:
    6 июл 2017
    Сообщения:
    225
    Симпатии:
    17
    в 7 строчке в конце запятая
     
  3. LeoPro

    LeoPro Активный пользователь

    С нами с:
    29 мар 2017
    Сообщения:
    14
    Симпатии:
    5
    На что заменить её? Если можно код поправьте пожалуйста.

    Код (Javascript):
    1. $('#base-price').text(price),
    2.                 $('#base-price').html("&nbsp;<i class=\"fas fa-ruble-sign iruble\"></i>");
     
  4. username

    username Новичок

    С нами с:
    6 июл 2017
    Сообщения:
    225
    Симпатии:
    17
    на точку с запятой ;
     
  5. LeoPro

    LeoPro Активный пользователь

    С нами с:
    29 мар 2017
    Сообщения:
    14
    Симпатии:
    5
    Пробовал, не помогло( показывается иконка рубля без суммы
     
  6. username

    username Новичок

    С нами с:
    6 июл 2017
    Сообщения:
    225
    Симпатии:
    17
    смысла в двух установках значения одного и того же поля нет, вы сначала присваиваете полю base-price значение price, а потом значение "пробел и тег i с рублём"
    --- Добавлено ---
    $('#base-price').html(price+"&nbsp;<i class=\"fas fa-ruble-sign iruble\"></i>");
     
    LeoPro нравится это.
  7. LeoPro

    LeoPro Активный пользователь

    С нами с:
    29 мар 2017
    Сообщения:
    14
    Симпатии:
    5
    Большое спасибо, я думал что price можно писать только внутри .text() оказывается, всё намного проще.
     
  8. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    метод .text() отличается от .html() тем, что метод .text() предполагает вставку в элемент текста, а не html кода.
    и все html симолы будут заменены на html сущности подобно тому, как это делает htmlspecialchars() в php
     
    LeoPro нравится это.
  9. LeoPro

    LeoPro Активный пользователь

    С нами с:
    29 мар 2017
    Сообщения:
    14
    Симпатии:
    5
    Спасибо большое за подробный ответ, теперь всё понял!
     
    [vs] и TeslaFeo нравится это.