2011-01-29 72 views

回答

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>'); 
}); 

而且demo here

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

尝试这种解决方案:http://jsfiddle.net/U8byW/10/

你有没有和你分别的问题:

  • 当你说class="commentnumber",你打破了JS的字符串,导致错误(Uncaught SyntaxError: Unexpected identifier
  • 你不根本不需要增加i:jQuery为你处理。但要回答你的问题,i = i + 1i++是大致相同的事情,是的。区别在于i = i + 1返回新值(添加了1的新值),而i++返回旧值,然后将其加1。您也可以使用i += 1++i。所有这些都是粗略的等同物。
  • JavaScript不会自动为PHP或其他语言格式化字符串或在字符串内部插入变量。你必须连接字符串来插入变量。我已经在上面的更新链接中为你完成了。请注意,字符串连接运算符(+)与加法运算符(+)相同,不像某些语言(例如PHP,其中级联是.)。

希望这会有所帮助。

编辑:我意识到你为什么增加i:让行从1开始而不是0。忽略我说你不需要增加它。我没有直截了当地想。

相关问题