1

有人可以就此提出建议吗?我正在尝试创建一个 jquery 函数,该函数将采用字符串的最后 3 个字符并以不同的方式设置它们。在我的情况下,字体大小的一半。

所以在像 €100.50 这样的字符串中,0.50 会更小

有人可以指出我正确的方向吗?或者,如果插件/脚本已经存在,请告诉我

谢谢!

十二月

4

6 回答 6

1

有人可以指出我正确的方向吗?...

使用replace将文本包装在标签中并添加一个类以使用 CSS 对其进行样式设置:

$el.html( $el.text().replace(/.{3}$/, '<span class="small">$&</span>') );

演示:http: //jsbin.com/epuzag/4/edit

于 2012-10-30T23:45:34.910 回答
1

也许你可以使用一个函数来获取所需字符串的长度并剪切它的最后 3 个字母,然后将它们放入一个新字符串中,放入一个带有所需类的新标签(跨度或其他东西)中

于 2012-10-30T23:45:58.573 回答
0

好吧,不一定涉及 jquery 。您可以将字符串作为参数包装到样式 DIV 中。

就像是:

 txt = $("#id").text();
 txt = style_string(txt);

 function style_string(string){
      ...
     if(){
        string = "<div class='class-to-style'>" +string+"</div>"
      }....

 }
于 2012-10-30T23:40:10.910 回答
0

您要修改的文本需要包含在另一个 html 元素中,您可以在其中添加类或内联样式以进行 css 调整

假设这个盯着 html,并使用 jQuery 来获取和设置 mosified text/html:

<span>€100.50</span>

.

$('span').html(function(idx, oldHtml) {
    var startStr = oldHtml.substring(0, oldHtml.length - 3)
    var endStr = '<small>' + oldHtml.substring(oldHtml.length - 3) + '</small>'
    return startStr + endStr;

});

演示:http: //jsfiddle.net/vJ63t/

于 2012-10-30T23:50:09.780 回答
0

试试这个:

function formatString( txt ) {

    var i = txt.lastIndexOf( "." ); 
    if( i === -1 ) return txt; // if txt => $10 return

    return txt.slice( 0, i ) + "<span class='smaller'>" + txt.slice( i ) + "</span>";
}
于 2012-10-30T23:52:22.390 回答
0

我经常使用像这样的格式化程序:

HTML

<div id="price"></div>

CSS

.decimal {
 font-size:10px; 
 color:black;
}

JS

function formatPrice(price, containerId, digits) {

  var startStr,
      endStr,
      containerElem = $("#"+containerId);

  //cut last specified digits
  startStr = price.substr( 0, price.length - digits );
  endStr = price.substr( price.length - digits, price.length );

  //DOM elements

  $("<span/>")
    .text(endStr)
    .addClass("decimal")
    .appendTo(containerElem)
    .parent()
    .prepend(startStr);
}

var price = "€100.50";
formatPrice(price, "price", 3);
于 2012-10-31T00:11:24.120 回答