2012-04-24 65 views
0

我一直在嘗試通過在其內容頂部添加一個有序列表,然後在每個新行之前添加一個有序列表來對html代碼元素進行樣式設置,他們的結束標籤添加到每行的末尾。Jquery - 在數組中的每個新行之前添加html

這是我有:

 $("#mydiv code").each(function(){ 
     var oldcontent = $(this).html(); 
     $(this).html("<span class='olnumbers'></span><ol class='code'>" + oldcontent + "</ol>"); 
     var lines = oldcontent.split(/[\n\r]/g); 
     $.each(lines, function(e){ 
       $(this).html("<li><p>" + lines + "</p></li>"); 
     }); 

}); 

這根本不起作用。我沒有錯誤,我不知道什麼是錯的。 有誰知道如何解決這個問題?

謝謝!

+0

我應該提到:本工程以增加跨度和內容以外的OL的程度,但不加李和P。 但是,如果我將「alert(this)」放在每個函數的內部,它就可以很好地工作。 – Alurict 2012-04-24 00:55:18

回答

0

你不能在每個函數中使用它。

http://api.jquery.com/jQuery.each/

jQuery.each(集合,回調(indexInArray,valueOfElement))

收集的對象或數組遍歷。

callback(indexInArray,valueOfElement)將在每個對象上執行的函數 。

試試這個:

var html = []; 
$.each(lines, function(i, val){ 
       html.push("<li><p>" + val + "</p></li>"); 
     }); 
$(this).html(html.join('')); 
+0

這是有效的!但現在我的OL和跨度不被追加 - 我認爲這是因爲「$(this).html(html.join(''));」線。 – Alurict 2012-04-24 01:14:49

+0

沒關係,我解決了它 - 愚蠢的錯誤,我使用的行是用var oldcontent替換所有的東西,所以我做了一個新的變種,它的工作原理。謝謝! – Alurict 2012-04-24 01:37:25

相關問題