如何将 div 的字符转换为跨度?
例如,我想转换这个:
<div>
Hello World
</div>
Run Code Online (Sandbox Code Playgroud)
进入这个:
<div>
<span>H</span>
<span>e</span>
<span>l</span>
<span>l</span>
<span>o</span>
<span>W</span>
<span>o</span>
<span>r</span>
<span>l</span>
<span>d</span>
</div>
Run Code Online (Sandbox Code Playgroud)
我已经尝试过这个 StackOverflow 建议,但是它将空格转换为跨度。我需要的是仅将字符转换为跨度:
$("div").each(function (index) {
var characters = $(this).text().split("");
$this = $(this);
$this.empty();
$.each(characters, function (i, el) {
$this.append("<span>" + el + "</span");
});
});
Run Code Online (Sandbox Code Playgroud)
您可以使用带有回调的String#replace方法和html()方法来减少代码。
$("div").html(function(index, html) {
return html.replace(/\S/g, '<span>$&</span>');
});
Run Code Online (Sandbox Code Playgroud)
$("div").html(function(index, html) {
return html.replace(/\S/g, '<span>$&</span>');
});
Run Code Online (Sandbox Code Playgroud)
$("div").html(function(index, html) {
return html.replace(/\S/g, '<span>$&</span>');
});Run Code Online (Sandbox Code Playgroud)