Вертикальный текст с помощью jQuery
Я смотрю, чтобы выровнять текст по вертикали, добавив <br />
теги между символами с помощью jQuery.
<div id="foo"><label>Vertical Text</label></div>
будет выглядеть так:
В
е
р
T
я
с
L
T
е
Икс
T
6 ответов
Пойдем в гольф!
$('#foo label').html($('#foo label').text().replace(/(.)/g,"$1<br />"));
Полностью не проверено, но шаблон в регулярном выражении выглядит как сиська.
Ответ г-на Курта хорошо работает для одного идентификатора, но если вы хотите что-то более полезное, что можно применить к нескольким элементам, попробуйте что-то вроде этого:
$.each( $(".verticalText"), function () { $(this).html($(this).text().replace(/(.)/g, "$1<br />")) } );
Тогда просто установите class="verticalText"
на элементы, которые вы хотите отформатировать, как это.
И в качестве бонуса он сохраняет регулярные выражения сиськи.
Не проверено, но должно работать.
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 );
document.write("vertical text".split("").join("<br/>"));
Изменить: отверстие в одном!
Это основано на ответе Себастьяна Н, но я проверил его, и это работает
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++;
}
Зачем использовать цикл while, если вы можете использовать встроенный в каждый метод jQuery?
$.each(
$('#foo').text(), function(){
$('#foo').append(this + '
');
}
);
Там. Оно работает. Вы можете проверить это.