2012-10-30 46 views
1

任何人都可以提供這方面的建議嗎?我試圖創建一個jQuery的函數,將採取一個字符串的最後3個字符和不同的風格。在我的情況下,字體大小的一半。功能風格部分字符串

所以像€100.50字符串.50會更小

可有人請點我在正確的方向?或者,如果插件/腳本已經存在讓我知道

謝謝!

Dec

+2

當你問,你在你所使用的語言的標籤指定一個「功能」它確實有幫助。 –

回答

0

你想修改的文本需要被包裝在另一個html元素中,你可以添加一個類或內聯樣式來使css adjustmets

假設這個凝視的html,並使用jQuery來獲取和設置mosified文本/ 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; 

}); 

DEMO:http://jsfiddle.net/vJ63t/

0

好吧,不一定涉及jquery。 您可以將字符串作爲參數包裝到樣式化的DIV中。

類似:

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

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

} 
1

可有人請點我在正確的方向? ...

使用replace包裝在標籤中的文字並添加一類具有CSS樣式吧:

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

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

+1

令人驚歎!非常感謝!這正是我所期待的!事實上,每個人的貢獻都在於金錢,所以,感謝大家的時間和精力!多麼驚人的社區! – decbrad

+0

@decbrad - 比你爲什麼不同意他的回答?他的回答更好,更高效,更聰明,並且是正確的。 – neoswf

+0

如何將2個解決方案標記爲正確?畢竟許多路通向羅馬! – decbrad

1

也許你可以使用一個函數,得到想要的字符串的長度並剪切它的最後3個字母,然後將它們放入一個新的字符串中,放入一個新的標籤(跨度或某物),並帶有想要的類別

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>"; 
} 
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);