【问题标题】:Rails: style a number_to_currency with HTML <sup> Tag [closed]Rails:使用 HTML <sup> 标签设置 number_to_currency [关闭]
【发布时间】:2020-05-26 11:02:30
【问题描述】:

在 Rails 应用程序中,我有这个 &lt;%= number_to_currency product.price %&gt;,它给出了这个 html 输出:29.98 美元。

有没有一种方法可以设置上述number_to_currency html 输出的样式,以便如下所示?

&lt;p&gt;&lt;sup&gt;$&lt;/sup&gt;29&lt;sup&gt;98&lt;/sup&gt;&lt;/p&gt;

【问题讨论】:

  • 我不知道rails是如何工作的,但是作为JS,拆分输出然后包装它
  • 感谢@Abhishek Pandey 的回复...我不知道如何实施您刚才的建议。能否提供一些示例代码?

标签: html css ruby-on-rails ruby


【解决方案1】:

我用 JS 创建了一个小例子。

let symbol = pricePara.innerText.split("")[0];
let price = pricePara.innerText.split(".");
let priceLHS = price[0].replace(symbol, "");
let priceRHS = price[1];
pricePara.innerHTML = "<sup>" + symbol + "</sup>" + priceLHS + "<sup>" + priceRHS + "</sup>"
p{
  font-size:3em;
}
&lt;p id="pricePara"&gt;$29.98&lt;/p&gt;

有多个项目。

const priceParas = document.querySelectorAll('.price');

priceParas.forEach(function(item) {
  let symbol = item.innerText.split("")[0];
  let price = item.innerText.split(".");
  let priceLHS = price[0].replace(symbol, "");
  let priceRHS = price[1];
  item.innerHTML = "<sup>" + symbol + "</sup>" + priceLHS + "<sup>" + priceRHS + "</sup>"
})
p {
  font-size: 3em;
}
<p class="price">$29.98</p>
<p class="price">$2934.983</p>
<p class="price">$29434.00398</p>

【讨论】:

  • 我忘了提到我正在循环浏览一系列产品。因此,当我只有一种产品时,它可以正常工作,但是当我有多个产品时,它就无法正确显示。我认为number_to_currency 上的id 把一切都搞砸了。
  • 根据语言环境,货币可能看起来完全不同:例如,货币符号可以多于一个字符,符号可以在末尾,分隔符可以是逗号而不是点...
  • @spickermann 完全同意你的看法。
  • @Dev 更新了答案,我希望这可行
  • hmmm... 现在它改变了我在该页面上的所有&lt;p&gt;&lt;/p&gt; paragraphs。我在这个页面上有其他段落不是价格
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-10
  • 1970-01-01
  • 1970-01-01
  • 2016-01-29
  • 2015-01-22
  • 2014-08-23
相关资源
最近更新 更多