Конвертер цены (валют) на 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, время: 21:51. |