JQuery / Javascript количество данных- (сортировка) значения - PullRequest
0 голосов
/ 26 сентября 2019

Имея небольшую вещь здесь.У меня есть таблица с бронированиями

<tr class="booking">
    <td>00234</td>
    <td onclick="window.location=('https://www.exmple.com/booking/view=777');" data-sort="64.99" class="price">
    €64,99
    </td>
</tr>

Теперь я хотел бы, чтобы JQuery перебрал все поля td.price и получил data-sort "" значение

Iпробовал следующее:

var amount = 0;

$("#booking_table > tbody > > tr > td > data['data-sort']").each(function () {
    amount += parseFloat($(this).val());
});

Но это не работает.(логично, потому что я не знаю, как приблизиться к значению сортировки данных. Но должен быть способ.

Ответ от Martin

var amount = 0;

$("#booking_table > tbody > tr > .price[data-sort]").each(function () {
    amount += parseFloat($(this).data('sort'));
});

Ответы [ 3 ]

2 голосов
/ 26 сентября 2019

Это только потому, что у вас небольшая проблема с селектором.

Селектор, который вы использовали, неверен:

#booking_table > tbody > > tr > td > data['data-sort']

Вместо этого вы хотите:

#booking_table > tbody > tr > td[data-sort]

var amount = 0;

$("#booking_table > tbody > tr > td[data-sort]").each(function() {
    amount += $(this).data('sort');
});

console.log(amount)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="booking_table">
  <tbody>
    <tr class="booking">
        <td>00234</td>
        <td onclick="window.location=('https://www.exmple.com/booking/view=777');" data-sort="64.99" class="price">
        €64,99
        </td>
    </tr>
  </tbody>
</table>
1 голос
/ 26 сентября 2019

Может быть, поскольку я не могу знать ваш HTML-селектор, может быть

$('#booking_table > tr.booking > td[data-sort]').each(function () {
   amount += parseFloat($(this).val());
});
0 голосов
/ 26 сентября 2019

Вы можете легко использовать $("#booking_table td[data-sort]").each(function() { ... и производить вычисления,

, поскольку в вашем случае вы используете >, что означает прямые дочерние элементы родителя.

$(function() {
  let amount = 0;
  $("#booking_table td[data-sort]").each(function() {
    //console.log($(this).data('sort'));
    amount += parseFloat($(this).data('sort'));
  });
 alert("amount ="+  amount); 
  
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="booking_table" border="1px solid ">
  <tbody>
    <tr class="booking">
      <td>00234</td>
      <td onclick="window.location=('https://www.exmple.com/booking/view=777');" data-sort="64.99" class="price">
        €64,99
      </td>
    </tr>
    <tr class="booking">
      <td>00235</td>
      <td onclick="window.location=('https://www.exmple.com/booking/view=777');" data-sort="23.99" class="price">
        €23,99
      </td>
    </tr>
    <tr class="booking">
      <td>00236</td>
      <td onclick="window.location=('https://www.exmple.com/booking/view=777');" data-sort="76.99" class="price">
        €76,99
      </td>
    </tr>
  </tbody>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...