Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как преобразовать счетчик к нужному виду? (https://javascript.ru/forum/jquery/56557-kak-preobrazovat-schetchik-k-nuzhnomu-vidu.html)

ligisayan 23.06.2015 14:51

Цитата:

Сообщение от рони (Сообщение 376203)
ligisayan,
и что не так?

я писал, но что-то не сохранило: вот так теперь показывает
["360.0", "00"]
ну и соответственно на выходе 0

рони 23.06.2015 15:05

ligisayan, что тут у вас?
<span class="quantity">13 × <span class="amount">70&nbsp;руб.</span></span>

ligisayan 23.06.2015 15:18

Цитата:

Сообщение от рони (Сообщение 376225)
ligisayan, что тут у вас?
<span class="quantity">13 × <span class="amount">70&nbsp;руб.</span></span>

рони, изначально так:
<span class="quantity">13 × <span class="amount">360.000&nbsp;руб.</span></span>
после применения match(/\d+.?\d+?/g) вот так
<span class="quantity">100 × <span class="amount">0 руб</span></span>

рони 23.06.2015 15:23

ligisayan,
:blink:
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .amount {
    color: #FF0000;
  }

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
  $(function() {
      var quantity = $(".quantity").text().match(/\d+.?\d+?/g),
          max = +$(".input-text.qty.text").attr("max"),
          min = +$(".input-text.qty.text").attr("min");

      function fn() {
          quantity[0] > max && (quantity[0] = max);
          quantity[0] < min && (quantity[0] = min);
          $(".input-text.qty.text").val(quantity[0]);
          $(".amount").text(quantity[1] + " " + (quantity[0] * quantity[1]) + "  руб");
          $(".quantity")[0].firstChild.data = quantity[0] + " × ";
      }
      $(".plus, .minus").click(function() {
          $(this).is(".plus") ? quantity[0]++ : quantity[0]--;
          fn()
      })
      $(".input-text.qty.text").on("input",function() {
          quantity[0] = this.value;
          fn()
      })
      fn()
  });
  </script>
</head>

<body>  <span class="quantity">13 × <span class="amount">360.000&nbsp;руб.</span></span>
<div class="quantity buttons_added">
  <input type="number" step="1" min="1" max="200" id="num_count" name="quantity" value="100" title="Кол." class="input-text qty text" size="4">
  <input type="button" value="+1" id="button_plus" class="plus">
  <input type="button" value="-1" id="button_minus" class="minus">
</div>


</body>

</html>

ligisayan 23.06.2015 15:48

Цитата:

Сообщение от рони (Сообщение 376241)
ligisayan,
:blink:

рони, смотри немного не так
Смотри: мне нужно на выходе получить 360.000 руб
а не 360 руб
1 × 360.0 360 руб
и потом мне не нужно в amount quantity[1] - для этого я его из цикла удаляю:
$(".amount").text(quantity[1] + " " + (quantity[0] * quantity[1]) + " руб");

если я делаю вот так match(/\d+\.\d+/g), то значение quantity записывается правильно, но т.к. мне нужен массив со значением quantity[1] плюс ко всему, то это не вариант..:no:

рони 23.06.2015 17:04

ligisayan,
далее сами.

ligisayan 24.06.2015 11:17

Цитата:

Сообщение от рони (Сообщение 376274)
ligisayan,
далее сами.

с матчем разобрались- рабочий пример match(/\d+(?:\.\d+)?/g)


Часовой пояс GMT +3, время: 07:30.