Скрипт Jquery влияет только на первый DIV на моей странице?
Я новичок в jQuery и, похоже, не могу заставить следующий код работать по своему вкусу:
<script type="text/javascript"> jQuery(document).ready(function($) { $.fn.digits = function(text){ $(this).text(text.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") + '€' ); }; var tempText = $.trim($("#price").text()); tempText = tempText.substr(0, parseInt(tempText.length) ); $("#price").digits(tempText); }); </script>
Он должен конвертировать числа во всех #price divs в разделенные запятыми валютные версии:
1000000 = 1,000,000€
Это прекрасно работает для первого экземпляра #price на странице, но если один и тот же идентификатор появляется более одного раза на одной и той же странице, остальные не форматируются сценарием.
Я обнаружил, что DIV Mus уникален, поэтому я попытался перейти к классам вместо этого (#price to .price), Что делает трюк, но теперь создает новую проблему. Теперь все экземпляры .price показаны в каждом экземпляре .price - если это имеет смысл.
Допустим, у меня есть .цена 3 раза на одной странице:
Пример 1 (.Цена): 200000
Пример 2 (.Цена): 250000
Пример 3 (цена): 300000
Должен показать:
200,000€
250,000€
300,000€
Вместо этого он дает мне:
200,000€ 250,000€ 300,000€
200,000€ 250,000€ 300,000€
200,000€ 250,000€ 300,000€
Почему это так, и как мне это исправить?
Спасибо!
Что я уже пробовал:
<pre><script type="text/javascript"> jQuery(document).ready(function($) { $.fn.digits = function(text){ $(this).text(text.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") + '€' ); }; var tempText = $.trim($("#price").text()); tempText = tempText.substr(0, parseInt(tempText.length) ); $("#price").digits(tempText); }); </script>
и (изменено на классы)
<pre><script type="text/javascript"> jQuery(document).ready(function($) { $.fn.digits = function(text){ $(this).text(text.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") + '€' ); }; var tempText = $.trim($(".price").text()); tempText = tempText.substr(0, parseInt(tempText.length) ); $(".price").digits(tempText); }); </script>