Я все еще пытаюсь придумать более быстрый / лучший метод, но думаю, что должно сработать следующее:
Конечно, есть разные варианты - например, вы могли бы реализовать «минимальное расстояние от другого пересечения» сверху. Или «черная линия истончается первой» . Или расширение каждого шарика, чтобы размыть черные линии и сделать три цвета ближе друг к другу. Вы можете уменьшить свое изображение (стараясь использовать NEAREST_NEIGHBOUR вместо интерполяции) после маркировки, чтобы сократить время обработки - если это важно.
Давайте пойдем, играя в гольф!
$('#foo label').html($('#foo label').text().replace(/(.)/g,"$1<br />"));
Полностью непротестированный, но шаблон в regex похож на болвана.
Не протестированный, но это должно работать.
var element = $( '#foo label' );
var newData = '';
var data = element.text();
var length = data.length;
var i = 0;
while( i < length )
{
newData += data.charAt( i ) + '<br />';
i++;
}
element.html( newData );
Почему использование некоторое время циклично выполняется, когда можно использовать jQuery, встроенный каждый метод?
$.each( $('#foo').text(), function(){ $('#foo').append(this + '
'); } );
Там.Работает. Можно протестировать его.
Это основывается на ответе H Sebastian, но я протестировал его, и это работает
var element = $( '#foo label' );
var newData = '';
var data = element.text();
var length = data.length;
var i = 0;
$( '#foo label' ).html("");
while( i < length )
{
$( '#foo label' ).append(data.charAt( i ) + "<br />")
i++;
}
Mr Kurt's answer works well for a single id, but if you want something more useful that can be applied to several elements try something like this:
$.each( $(".verticalText"), function () { $(this).html($(this).text().replace(/(.)/g, "$1
")) } );
Then just set class="verticalText"
on the elements you want to be formatted like this.
And as a bonus it keeps the boob regex.
document.write ("вертикальный текст" .split (""). Join ("
"));
Изменить: Отверстие в одном!