Ich arbeite an Code, der dynamisch generierte Grafiken verwendet. Und all diese Graphen haben Legenden auf der y-Achse. Jetzt ist es mein Ziel zu überprüfen, wie lang der längste Legendenstring ist, und wenn der längste Zeichensatz größer als 20 Zeichen ist, möchte ich nur die ersten Zeichen jeder Zeichenkette anzeigen.Ersetzen Sie dynamisch generierte Textelemente
Mit dem Code unten erreichte ich, dass ich die gewünschten verkürzten Zeichenfolgen alarmieren kann; aber ich weiß nicht, wie ich den Text jetzt mit diesen neuen Zeichenfolgen ändern soll.
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);
});
};
Ich habe versucht, so etwas wie:
$(labelStrings).replaceWith(subString)
Damit hatte ich keine Legende überhaupt, da ich den ganzen Text-Tag und alle seine Attribute mit dem neuen String ersetzt haben.
Gibt es eine Möglichkeit, das Tag und seine Werte überhaupt nicht zu berühren, sondern einfach den Text zwischen dem öffnenden und schließenden Tag zu ändern?
Vielen Dank im Voraus!
Wenn Sie Textbreite messen wollen, [berechnen it] (http://stackoverflow.com/a/21015393/1762224) mit ''