Найти и умножить число
Здравствуйте.
Подскажите пожалуйста как решить проблему. Проблему заключается в следующем: На сайте есть цены, но они указаны в USD. Необходимо перевести их в рубли, но сделать это можно только при помощи Java script (по другому не дают). Цена на сайте указывается так: <p class="i-price">3.60 USD</p> Необходимо сделать так, чтоб в итоге получилось <p class="i-price">126 руб</p> Курс стабильный и равен 1 USD = 35 руб. Таким образом нужно находить число, умножать его на 35. Затем находить слово USD и заменять его на руб. |
var els = document.getElementsByTagName('p'); for (var i = 0; i < els.length; i++) { if (els[i].className == 'i-price') { els[i].innerHTML = els[i].innerHTML.replace(/([\d.]+) USD/, function(all, price) { return (parseFloat(price) * 35) + ' руб.'; }); } } |
к сожалению не работает (
вставил в head <script type="text/javascript"> var els = document.getElementsByTagName('p'); for (var i = 0; i < els.length; i++) { if (els[i].className == 'i-price') { els[i].innerHTML = els[i].innerHTML.replace(/([\d.]+) USD/, function(all, price) { return (parseFloat(price) * 35) + ' руб.'; }); } } </script> |
Надо не в head, а после всех таких чисел.
|
К сожалению доступ есть только к Head
Я только туда могу скрипт добавить. |
window.onload = function() { var els = document.getElementsByTagName('p'); for (var i = 0; i < els.length; i++) { if (els[i].className == 'i-price') { els[i].innerHTML = els[i].innerHTML.replace(/([\d.]+) USD/, function(all, price) { return (parseFloat(price) * 35) + ' руб.'; }); } } }; |
Спасибо большое. Всё работает.
Скажите как туда добавить ещё один class Я обнаружил что у меня так же присутствует class <p class="it-price">11.5 USD </p> Как добавить чтоб он и его сразу заменял? |
if (els[i].className == 'i-price' || els[i].className == 'it-price') { |
большое спасибо, за оперативную помощь
|
window.onload
window.onload - по- моему google chrome некорректоно с ним работает?
|
Цитата:
|
window.onload
не запускалась функция javascript по наступлению этого события - opera 9 и 10 firefox 3+ ie 6,7,8 отработали а chrome никак - пришлось убрать onload усложнять скрипт чтобы и в сhrome работало
|
window.onload
Вспомнил - определял координаты эл-та на странице - и в хроме неверно определялось из-за того что видимо не дожидаясь полной загрузки определял координаты - визуально было видно что в конце загрузки эл-т ниже опускается а chrome фиксировал координаты не самые последние
|
Нетерпеливый какой:)
|
window.onload
Поэтому и удивился увидев что window.onload используют или может только в специфических вещах это проявлется - и нечасто и многие с этим не сталкивались
|
скрипты имхо нужно размещать в конце html и там уже ставить onload.
|
window.onload
Скрипты все в конце html - и вызов window.onload тоже. Может конечно что-то не так и у меня было - но вышеуказанные браузера абсолютно чисто отрабатывали мой скрипт и только из-за chrome пришлось переписывать - причём это не единственный раз когда 'мнение' chrome отличалось от мнения 3-х остальных браузеров под которые я пишу и ради этого chrome пришлось дорабатывать скрипт - хотя бы разработчики хром не добавляли своих глюков - и реализации поддерживаемые единогласно opera firefox ie не браковали
|
В JavaScript надо очень чутко следить за правильностью кода, поскольку некоторые браузеры позволяют делать смысловые ошибки, или нарушать спецификации, а некоторые - нет. В большинстве случаев "глюки" это ошибки кода, а не движка браузера.
Возможно у вас на странице были изображения, у которых не стояли атрибуты width и height, из-за чего после загрузки позиционирование сдвинулось, или что-то подобное. У меня лично, с chrome проблем еще не было, кроме его (уже исправленного) бага с полупрозрачными png, и немного нестабильной реализацией canvas. |
Часовой пояс GMT +3, время: 00:33. |