Замените var price = secondwrapper.getElementsByTagName('span')[0];
на var price = parseFloat(secondwrapper.getElementsByTagName('span')[0].innerHTML.replace(',','.'));
, чтобы получить содержимое вашего диапазона, и замените запятую на точку, чтобы получить строку как число с плавающей запятой.Если вы не замените запятую точкой, JavaScript не поймет, что «149,99» - это число, и сохранит только «149», поскольку ,
не распознается как десятичный разделитель, а .
- это,getElementsByTagName
даст вам весь тег, а не только значение внутри, как вы хотели.Затем в последней строке удалите price.innerHTML
в price
, потому что вы уже преобразовали его ранее.
Вот фрагмент кода, чтобы помочь вам
var wrapper = document.getElementsByClassName('article-price')[0];
var secondwrapper = wrapper.getElementsByTagName('span')[0];
var price = parseFloat(secondwrapper.getElementsByTagName('span')[0].innerHTML.replace(',','.'));
var installment = document.getElementById('installment');
installment.innerHTML = parseFloat(price / 12).toFixed(2) + " €";
<span class="article-price">
<span>
<span>149,99</span>
<span>€</span>
</span>
</span>
<div>your installment is <span id="installment"></span></div>
Надеюсь, мой ответ помог вам!