它应该在LI的右边添加一个数字,所以第一个LI将在数字1前面,第二个LI在前面加上2,等等。
同样,i = i+1;
和i++;
是一样的吗?如果没有,有什么区别?
答案 0 :(得分:3)
这一行是问题所在:
$(this).append("<span class="commentnumber"> #' i '</span>");
请改用:
$(this).append("<span class='commentnumber'> #" + i + "</span>");
请注意,字符串分隔符现在匹配,并使用+来连接字符串。
更新代码时,它可以正常运行 - http://jsfiddle.net/U8byW/14/
是的,i = i + 1;
与单行声明的i++
相同。
答案 1 :(得分:2)
你的代码中有一些非常破碎和混乱的简单和双引号,更不用说你正在尝试修改循环的i
变量,这不是一件好事。试试这样:
$('li').each(function (index) {
$(this).append(
$('<span/>').addClass('commentnumber').text('#' + (index + 1))
);
});
或者如果您愿意(但要注意简单和双引号):
$('li').each(function (index) {
$(this).append('<span class="commentnumber">#' + (index + 1) + '</span>');
});
答案 2 :(得分:1)
尝试此解决方案:http://jsfiddle.net/U8byW/10/
你遇到的问题是:
class="commentnumber"
时,你破坏了JS字符串,导致错误(Uncaught SyntaxError: Unexpected identifier
)i
:jQuery会为您处理。但是要回答你的问题,i = i + 1
和i++
大致相同,是的。区别在于i = i + 1
返回新值(添加1),而i++
返回旧值,然后将其递增1。您还可以使用i += 1
或++i
。所有这些都是粗略的等价物。+
)与加法运算符(+
)相同,与某些语言不同(例如,PHP,其中串联为.
)。希望这有帮助。
编辑:我意识到你为什么要递增i
:让行从1开始而不是0.忽略我说你不需要递增它。我没有直接思考。