使用Javascript输出一个范围内的每个字母

使用Javascript输出一个范围内的每个字母,javascript,jquery,Javascript,Jquery,我有这样的代码: var letter = 'abcd'; var split = letter.split(""); var html = ''; for (var i = 0; i < split.length; i++) { html += split[i]; $('<span/>') .data('letter', letter) .data('match-count', bins[letter] ||

我有这样的代码:

var letter = 'abcd';
var split = letter.split("");
var html = '';
for (var i = 0; i < split.length; i++) {
    html += split[i];
    $('<span/>')
        .data('letter', letter)
        .data('match-count', bins[letter] || 0)   
        .html(letter)
        .appendTo(alphabet);
}
<span>abcd</span>
<span>abcd</span>
<span>abcd</span>
<span>abcd</span>
var字母='abcd';
var split=字母split(“”);
var html='';
对于(变量i=0;i
此输出的字母如下所示:

var letter = 'abcd';
var split = letter.split("");
var html = '';
for (var i = 0; i < split.length; i++) {
    html += split[i];
    $('<span/>')
        .data('letter', letter)
        .data('match-count', bins[letter] || 0)   
        .html(letter)
        .appendTo(alphabet);
}
<span>abcd</span>
<span>abcd</span>
<span>abcd</span>
<span>abcd</span>
abcd
abcd
abcd
abcd
我想要实现的是:

<span>a</span>
<span>b</span>
<span>c</span>
<span>d</span>
a
B
C
D

有人能帮我吗?

在for循环中,您将
字母
变量的HTML文本分配给
元素。如果您想在这里添加单个字母,您将无法得到它,因为您已经在
split
变量中拆分了它们(而
letter
是完整的字符串)

相反,你可以使用

.html(拆分[i])
但这封信似乎在其他地方被引用了

这也是回顾良好的变量命名实践的好机会<代码>字母
表示一个字符,但被指定为
'abcd'
。稍后在for循环中,您打算分配一个字符,但是
字母
变量名有误导性

经过一些重构后:

var字母='abcd';
var split=字母。split(“”);
var html='';
对于(变量i=0;i
我不确定您对
html
变量的意图是什么,但是如果您希望它保存整个字符串,您不需要使用
html+=split[I]来重建它在循环内部。您可以通过在声明中指定它来简化:
var html=letters

@Yevgren展示了一种更现代的方法来处理您正在尝试的内容(请记住,并非所有浏览器都完全支持它(例如Internet Explorer 11))