Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Сократить код (https://javascript.ru/forum/jquery/61004-sokratit-kod.html)

wmfmynd 31.01.2016 10:20

Сократить код
 
Я совсем не разбираюсь в js. Надеюсь, вы мне поможете, заранее благодарен.
Задача состоит в том, чтобы сократить этот громадный код:
const dolarCost1 = $("tr#convertid-1 .dollar").html() * d;
const dolarCost2 = $("tr#convertid-2 .dollar").html() * d;
const dolarCost3 = $("tr#convertid-3 .dollar").html() * d;
const dolarCost4 = $("tr#convertid-4 .dollar").html() * d;
const dolarCost5 = $("tr#convertid-5 .dollar").html() * d;
const dolarCost6 = $("tr#convertid-6 .dollar").html() * d;
const dolarCost7 = $("tr#convertid-7 .dollar").html() * d;
$("tr#convertid-1 .br-result").append(dolarCost1.toFixed(-2));
$("tr#convertid-2 .br-result").append(dolarCost2.toFixed(-2));
$("tr#convertid-3 .br-result").append(dolarCost3.toFixed(-2));
$("tr#convertid-4 .br-result").append(dolarCost4.toFixed(-2));
$("tr#convertid-5 .br-result").append(dolarCost5.toFixed(-2));
$("tr#convertid-6 .br-result").append(dolarCost6.toFixed(-2));
$("tr#convertid-7 .br-result").append(dolarCost7.toFixed(-2));

Мне нужно было взять значение из дива с классом .dollar и уможить его на 20, а потом результат внести в див с классом .br-result

рони 31.01.2016 10:37

wmfmynd,
html сделайте минимальный

wmfmynd 31.01.2016 10:43

Цитата:

Сообщение от рони (Сообщение 405685)
wmfmynd,
html сделайте минимальный

Я немного не про это, дело в том, что в коде одни и те же операции повторяются много раз. Это можно превратить в функцию как-то?

рони 31.01.2016 10:51

wmfmynd,
напишие html код вашей таблицы так понятней? пару строк хотябы

wmfmynd 31.01.2016 11:39

Цитата:

Сообщение от рони (Сообщение 405687)
wmfmynd,
напишие html код вашей таблицы так понятней? пару строк хотябы

Да, конечно.
<table class="size">
				<tbody>
					<tr>
						<th>Размер</th>
						<th>Стоимость</th>
					</tr>
					<tr id="convertid-1" class="radio r-id-2">
						<td>80x43x8мм</td>
						<td><span class="br-result"></span> руб. ($<span class="dollar">2.6</span>)</td>
					</tr>
					<tr id="convertid-2" class="radio r-id-2">
						<td>120x65x12мм</td>
						<td><span class="br-result"></span> руб. ($<span class="dollar">5.89</span>)</td>
					</tr>
					<tr id="convertid-3" class="radio r-id-1">
						<td>180x97x18мм</td>
						<td><span class="br-result"></span> руб. ($<span class="dollar">13.35</span>)</td>
					</tr>
				</tbody>
			</table>

wmfmynd 31.01.2016 11:42

И ещё один печальный момент в том, что строк (<tr id="convertid-) может быть как одна, так десять...

рони 31.01.2016 12:13

wmfmynd,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <script>
   $(function(){
      var d = 20.45;
      $(".radio").each(function(){
            var res = ($(".dollar",this).html()*d*100|0)/100;//  или через .toFixed(2)
            $(".br-result",this).html(res)
            });
   })
  </script>
</head>

<body>
<table class="size">
				<tbody>
					<tr>
						<th>Размер</th>
						<th>Стоимость</th>
					</tr>
					<tr id="convertid-1" class="radio r-id-2">
						<td>80x43x8мм</td>
						<td><span class="br-result"></span> руб. ($<span class="dollar">2.6</span>)</td>
					</tr>
					<tr id="convertid-2" class="radio r-id-2">
						<td>120x65x12мм</td>
						<td><span class="br-result"></span> руб. ($<span class="dollar">5.89</span>)</td>
					</tr>
					<tr id="convertid-3" class="radio r-id-1">
						<td>180x97x18мм</td>
						<td><span class="br-result"></span> руб. ($<span class="dollar">13.35</span>)</td>
					</tr>
				</tbody>
			</table>

</body>

</html>

wmfmynd 31.01.2016 13:25

Спасибо, друг. Ты крут!;)


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