Dinamik olarak oluşturulmuş grafikler kullanan bazı kodlar üzerinde çalışıyorum. Ve tüm bu grafiklerin y ekseninde efsaneleri var. Şimdi amacım, en uzun legend dizesinin ne kadar uzun olduğunu kontrol etmektir ve en uzun olanı 20 karakterden büyükse, sadece her dizenin ilk karakterlerini göstermek istiyorum.Dinamik olarak oluşturulmuş metin öğelerini değiştir
Aşağıdaki kodla, istenen kısaltılmış dizeleri uyardığımda ulaştım; ama şimdi bu yeni dizelerle metni nasıl değiştireceğimi bilmiyorum.
var textLengthArray = [];
var labelStrings = domContainer.find(" g > .brm-y-direction > .tick > text");
labelStrings.each(function() {
textLengthArray.push($(this).text());
});
var longestString = textLengthArray.sort(function(a, b) {
return b.length - a.length;
})[0];
if (longestString.length >= 20) {
$("g.tick text").css("font-size", "9pt");
var offsetLeft = longestString.length * 3.7;
textLengthArray.map(function(sub) {
var subString = sub.substring(0, 6);
alert(subString);
});
};
Ben böyle bir şey denedim: Ben yeni dize ile tüm metin etiketi ve özelliklerin tümüyle değiştirilir beri Bununla
$(labelStrings).replaceWith(subString)
, ben hiç efsane vardı.
Etiket ve değerlerine hiç dokunmamanın herhangi bir yolu var, ancak açılış ve kapanış etiketi arasındaki metni değiştirelim mi?
Şimdiden teşekkürler! Eğer SO, yine kullanabilirsiniz gelmeden önce Google'ı araştırma gerektiğini temelleri olan
metin genişliğini ölçmek için, [hesaplamak] (http://stackoverflow.com/a/21015393/1762224)'. –