包裹跨度中的每个字符

uri*_*iah 1 syntax jquery

我试图在一个范围内包装每个数字.

这是我在的地方.

<div class="numbers">12345</div>
<div class="numbers">12345</div>
<div class="numbers">12345</div>

$('.numbers').each(function (index) {
    var characters = $(this).text().split("");
    $(this).empty();

    $.each(characters, function (i, el) {
    $(this).append("<span>" + el + "</span");
    });

});
Run Code Online (Sandbox Code Playgroud)

我的语法在哪里出错?

Aru*_*hny 7

你可以使用简单的正则表达式

$('.numbers').html(function (i, html) {
    return html.replace(/(\d)/g, '<span>$1</span>');
});
Run Code Online (Sandbox Code Playgroud)

演示:小提琴


要么

$('.numbers').html(function (i, html) {
    var chars = $.trim(html).split("");
    return '<span>' + chars.join('</span><span>') + '</span>';
});
Run Code Online (Sandbox Code Playgroud)

演示:小提琴


Mus*_*usa 4

thisin与in$.each不一样,因此您必须将其保存到变量中才能在那里使用。this$('.numbers').each

$this = $(this);
$this.empty();
$.each(characters, function (i, el) {
    $this.append("<span>" + el + "</span");
});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/phA8q/