0

我见过很多问题,但似乎没有一个问题对此有答案。我迫切需要这种帮助。我托管在 Magentogo 上,因此无法访问核心文件,但是在 jquery 的帮助下,我想从我的商店中隐藏 .00。例如,我的代码看起来像这样。卢比项目的价格。也是在 HTML 中无法粘贴为

              <div class="price-block"
              <p> The price of this item is 
                <span class="price" id="oldprice">
                     <span class="WebRupee"> Rs. </span>3,795.00             </span></p>
              </span>

                </div>

                <script>

                     $('#price-block').html($('#price-block').html().replace(".00",""));

                </script>

            </body>
            </html>
4

3 回答 3

4

你有它作为你的 div 中的一个类

<div class="price-block" // <-- also missing >

使用类选择器.

$('.price-block')

http://jsfiddle.net/WBsjA/

于 2012-12-20T14:22:37.990 回答
1

这是一种方法。由于您的价格没有包含在其自己独特的 HTML<span>中以便于定位和替换,因此您需要解析父元素,将子节点与文本节点分开,然后重新构建它:

var newval;    
$('.price').each(function(j, pr) {
    // trick to remove the webRupee element for later
    var $webRupee = $(pr).find('.WebRupee').remove().wrap('<div>').parent().html();
    $(pr).contents().each(function(i, el) {
        if (el.nodeType === 3 && el.nodeValue.match(/\.00/)) {
           newval = el.nodeValue.replace(/\.00/, '');
        }
    });
    $(pr).html($webRupee + newval);
});

http://jsfiddle.net/mblase75/r2V6r/

于 2012-12-20T14:38:04.980 回答
1

我认为您需要循环每个.price-block而不是尝试在整个代码垫上运行一次。

$('.price-block').each(function(){
    $(this).html($(this).html().replace(".000","").replace(".00","").replace(".0",""));
});

您还需要修复您的 HTML 标记

<div class="price-block">
    <p> The price of this item is 
        <span class="price" id="oldprice">
             <span class="WebRupee"> Rs. 3,795.000</span>
        </span>
    </p>
</div>

http://jsfiddle.net/daCrosby/XK48G/

于 2012-12-20T14:39:19.377 回答