2011-01-29 124 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。忽略我說你不需要增加它。我沒有直截了當地想。

相關問題