2012-04-02 21 views
0

Ich versuche, Knoten mit Text aus HTML-Datei mit Javascript und jQuery zu bekommen. wenn ich einen Knoten wie `Extrahieren von Text aus HTML-Datei

<div>txt0 
<span>txt1</span> 
txt2 
</div> 

How can I select elements that meets this criteria?? Meaning, I need to retrieve the div and the span`, und es wäre noch besser Position des Textes zu kennen.

Ich versuche, den Text zu erhalten, um es durch Bilder in einer späteren Funktion zu ersetzen. Ich habe versucht, diese

`

$('*').each(function(indx, elm){ 
    var txt = $(elm).text(); 
    // my code to replace text with images here 
}); 

`

aber es ist nicht die gewünschten Ergebnisse nicht bekommen .. es das Parsen im ersten Element der Fall ist, und ändert die html total.

+0

Sind Sie wollen alle Elemente auswählen, die Text in ihnen haben? – Lix

+0

Was wird '

txt0txt1txt2
' geändert, nachdem Sie es manipuliert haben? –

+0

@lix Ja, @ JuanMendes: Ich werde sie ändern, wenn ich sie finde – zeacuss

Antwort

1

Ich weiß nicht genau, was Sie zu lösen versuchen, aber vielleicht können Sie mit Ihrem Selektor etwas genauer sein?

$("div span").text(); // returns 'txt1' 
$("div").text();  // returns 'txt0txt1txt2' 

von IDS und/oder Klassen, um Ihre HTML hinzufügen, können Sie sehr spezifisch sein:

<div class="name">Aidan <span class="middlename">Geoffrey</span> Fraser</div> 

...

// returns all spans with class 
// "middlename" inside divs with class "name" 
$("div.name span.middlename").text(); 

// returns the first span with class 
// "middlename" inside the fourth div 
// with class "name" 
$("div.name[3] span.middlename[0]").text(); 

JQuery hat ziemlich good documentation dieser Selektoren.

Wenn dies nicht hilft, sollten Sie das Problem, das Sie lösen möchten, erklären.

0

Ihre Markup-Struktur ist ein wenig unruhig. Betrachten wir, um etwas zu ändern wie diese

<div> 
    <span>txt0</span> 
    <span>txt1</span> 
    <span>txt2</span> 
    </div> 

Dann mit jQuery

$("div span").each(function(k,v) { 
    $(this).html("<img src=\""+v+".jpg\" />"); //replace with the image 
});