有人可以就此提出建议吗?我正在尝试创建一个 jquery 函数,该函数将采用字符串的最后 3 个字符并以不同的方式设置它们。在我的情况下,字体大小的一半。
所以在像 €100.50 这样的字符串中,0.50 会更小
有人可以指出我正确的方向吗?或者,如果插件/脚本已经存在,请告诉我
谢谢!
十二月
有人可以指出我正确的方向吗?...
使用replace
将文本包装在标签中并添加一个类以使用 CSS 对其进行样式设置:
$el.html( $el.text().replace(/.{3}$/, '<span class="small">$&</span>') );
演示:http: //jsbin.com/epuzag/4/edit
也许你可以使用一个函数来获取所需字符串的长度并剪切它的最后 3 个字母,然后将它们放入一个新字符串中,放入一个带有所需类的新标签(跨度或其他东西)中
好吧,不一定涉及 jquery 。您可以将字符串作为参数包装到样式 DIV 中。
就像是:
txt = $("#id").text();
txt = style_string(txt);
function style_string(string){
...
if(){
string = "<div class='class-to-style'>" +string+"</div>"
}....
}
您要修改的文本需要包含在另一个 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/
试试这个:
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>";
}
我经常使用像这样的格式化程序:
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);