2010-11-10 63 views
0

我只需要從某個數組中獲取文本。所以我需要解析它。我有以下代碼:解析數組中的內容

for(var x=0;x<contentArray.length;x++){ 
markup += '<td>'+contentArray[x+1] +'</td>'; 
x++; 
} 

這給下面的輸出:

<td><c>&lt;ul&gt;&lt;li&gt;The content text&lt;/li&gt;&lt;/ul&gt;</c></td> 

它loks在瀏覽器這樣的:

<ul><li>The content text</li></ul> 

現在我想只得到文本(在這種情況下,內容文本&)。我怎麼能做到山雀?

+0

3快速評論:爲什麼在'for'循環結尾處有'x ++'?它已經處於它的狀態。爲什麼會有''標籤?你能給我們陣列的內容或它來自哪裏? – Shikiryu 2010-11-10 13:48:12

回答

2

您可以使用此功能UNESCAPE HTML(從原型源代碼被盜):

function unescapeHTML(html) { 
    return html 
       .replace(/&lt;/g,'<') 
       .replace(/&gt;/g,'>') 
       .replace(/&amp;/g,'&'); 
} 

然後,您可以使用jQuery的解析能力,得到標籤的文本:

for(var x=0;x<contentArray.length;x++){ 
    var $el = $(unescapeHTML(contentArray[x+1])).find('li'); //use the unescaped HTML to construct a jQuery object and find the li tag within it 

    markup += '<td>' + $el.text() + '</td>'; // get the text from the jQuery object and insert it into the fragment 
    x++; 
} 
+0

這不起作用。它用這個殺死了整個代碼/應用程序。爲什麼el之前有$?給出這個錯誤:未捕獲的異常:語法錯誤,無法識別的表達式:(在該ul內部的一些文本) – sasss 2010-11-10 15:02:37

+0

在firebug中給出這個錯誤:未捕獲的異常:語法錯誤,無法識別的表達式:(內容文本) – sasss 2010-11-10 15:13:23

+0

@sasss如果你可以提供'contentArray'的內容,我可能會提供幫助。 – lonesomeday 2010-11-10 15:35:42