Конвертер цены (валют) на javascript
Есть HTML:
<div class="price"> 547 300руб. <br /> </div><div class="price1"></div> Нужно чтобы было так: <div class="price"> 547 300руб. <br /> </div><div class="price1">54,73руб</div> Пытался сделать так: $(function(){ $each(function(){ var summ1 = document.getElementByClass('price1').innerHTML / 10000; //как-то нужно сделать округление до двух знаков после запятой... document.getElementByClass('price1').innerHTML = summ1; }); }); Код не работает, т.к. в нем куча синтаксических ошибок. Знатоки, исправьте, плиз. |
for (var i = 0; i < document.getElementsByClassName('price').length; i++) { var a = document.getElementsByClassName('price')[i].innerText.replace(/\D/g, ''),a = +a / 10000; document.getElementsByClassName('price')[i].nextElementSibling.innerText = a.toString().replace('.', ',')+'руб.'; } |
Rasy, не получилось у меня с твоим кодом, я реализовал вот так (через document.getElementById):
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function(){ var summ_old = document.getElementById('txt2').innerHTML; summ_old=summ_old.replace(/\s+/g,''); var summ_old1 = parseFloat(summ_old); var summ_new = summ_old1 / 10000; document.getElementById('txt3').innerHTML = summ_new +'руб'; }); </script> </head> <body> <div id="txt2">2 447 800руб</div> <div id='txt3'></div> </body> </html> Как реализовать через document.getElementsByClassName? |
Цитата:
<body> <div class="price"> 547 300руб. <br /> </div><div class="price1"></div> Нужно чтобы было так: <div class="price"> 547 300руб. <br /> </div><div class="price1">54,73руб</div> <script> for (var i = 0; i < document.getElementsByClassName('price').length; i++) { var a = document.getElementsByClassName('price')[i].innerText.replace(/\D/g, ''),a = +a / 10000; document.getElementsByClassName('price')[i].nextElementSibling.innerText = a.toString().replace('.', ',')+'руб.'; } </script> </body> Цитата:
|
Вот почему не работало - скрипт должен был выполняться после открывающего тега body (т.к. getElementsByClassName должен быть в теле документа? А getElementById может быть и в head, необязательно в body?)
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <div class="price"> 547 300руб. <br /> </div><div class="price1"></div> <script> for (var i = 0; i < document.getElementsByClassName('price').length; i++) { var a = document.getElementsByClassName('price')[i].innerText.replace(/\D/g, ''),a = +a / 10000; document.getElementsByClassName('price')[i].nextElementSibling.innerText = a.toString().replace('.', ',')+'руб.'; } </script> </body> </html> |
Функция обратного вызова javascript
dasistwas,
Скрипт может быть и в head, но тогда на объект window вешается слушатель, для обработки события загрузки дерева документа. window.addEventListener('DOMContentLoaded', init); function init() { console.log('success'); // тут вызывается код... } |
547 300руб. = 54,73руб - а где валюты то? Это не конвертация, а либо чудовищная инфляция, либо баг вывода сервера. )
|
В Беларуси деноминация, больше не миллионеры.
|
Значит в базе нужно это сделать единожды.
|
тогда две цены выводить, пока люди не привыкнут
|
Часовой пояс GMT +3, время: 05:24. |