2010-11-10 51 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