使用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))