2010-11-10 3 views
0

Je n'aurais besoin que du texte de certains tableaux. Donc j'ai besoin de l'analyser. J'ai le code suivant:Analyse du contenu dans le tableau

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

Ce qui donne le résultat suivant:

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

Et il méconnaissances sur le navigateur comme ceci:

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

Maintenant, je voudrais obtenir que le texte (Le texte du contenu & dans ce cas). Comment puis-je faire tit?

+0

3 remarques rapides: pourquoi 'x ++' à la fin de la boucle 'for'? C'est déjà dans son état. Pourquoi y a-t-il une balise ''? Pouvez-vous nous donner le contenu du tableau ou d'où il provient? – Shikiryu

Répondre

2

Vous pouvez utiliser cette fonction pour unescape HTML (volée à partir du code source Prototype):

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

Vous pouvez ensuite utiliser la capacité d'analyse de jQuery pour obtenir le texte des tags:

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

Cela ne fonctionne pas. Il tue tout le code/application avec ceci. Pourquoi y a-t-il $ avant el? Donne cette erreur: exception non interceptée: Erreur de syntaxe, expression non reconnue: (du texte à l'intérieur de cette ul) – sasss

+0

Donne cette erreur dans firebug: uncaught exception: Erreur de syntaxe, expression non reconnue: (Le texte du contenu) – sasss

+0

@sasss Si vous pouviez fournir le contenu de 'contentArray', je pourrais être en mesure d'aider. – lonesomeday

Questions connexes