Обрезать десятичные дроби из диапазона входных меток, используя простой JavaScript

Я использую плагин WordPress, который выплевывает код, который выглядит следующим образом:

<div class=" product-addon product-addon-extra-tip">    
  <p class="form-row form-row-wide addon-wrap-2004-extra-tip-0-0">
    <label>
      <input type="radio" class="addon addon-radio" name="addon-2004-extra-tip-0[]" data-raw-price="2" data-price="2" value="2"> $2 (<span class="amount">$2.00</span>)</label>
  </p>
  <p class="form-row form-row-wide addon-wrap-2004-extra-tip-0-1">
    <label>
      <input type="radio" class="addon addon-radio" name="addon-2004-extra-tip-0[]" data-raw-price="5" data-price="5" value="5"> $5 (<span class="amount">$5.00</span>)</label>
  </p>
</div>

Вы можете видеть, что <span> содержит значение в долларах с десятичными знаками Я хотел бы обрезать десятичные и конечные нули из каждого экземпляра.

Я знаю, что это должно быть возможно с помощью toFixed(), но я не могу понять, как нацеливаться только на эти конкретные <span>s. Я не могу просто выбрать по имени класса amount потому что он используется в другом месте.

Итак, мне нужно нацелиться на <span>с классом amount внутри <div> с классом product-addon, И мне нужно удалить десятичные дроби из строк внутри этих <span>s.

2 ответа

Решение

Используйте следующий JavaScript, чтобы обрезать все десятичные дроби и конечные нули из spans внутри div с классом product-addon,

var links = document.getElementsByClassName("product-addon");
var span = links[0].getElementsByTagName("span");
console.log(span.length);
for (var i = 0; i < span.length; i++) {
  span[i].innerText = span[i].innerText.split('.')[0];
}
<div class=" product-addon product-addon-extra-tip">
  <p class="form-row form-row-wide addon-wrap-2004-extra-tip-0-0">
    <label>
      <input type="radio" class="addon addon-radio" name="addon-2004-extra-tip-0[]" data-raw-price="2" data-price="2" value="2">$2 (<span class="amount">$2.00</span>)</label>
  </p>
  <p class="form-row form-row-wide addon-wrap-2004-extra-tip-0-1">
    <label>
      <input type="radio" class="addon addon-radio" name="addon-2004-extra-tip-0[]" data-raw-price="5" data-price="5" value="5">$5 (<span class="amount">$5.00</span>)</label>
  </p>
</div>

Так что используйте querySelectorAll и выберите их

var spans = document.querySelectorAll("dov.product-addon span.amount");
console.log(spans.length);

И цикл по коллекции.

Другие вопросы по тегам