• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

TextContent nur vom obersten Knoten

Shibb

New member
Hallo zusammen,

aus folgendem HTML CODE möchte ich den Text Hallo extrahieren:

Code:
<div id="hallo">

    <!--

     /WEB-INF/jsp/definition_elements/view_folder_data…

    -->
    <div class="ss_entryContent">
        <span class="ss_labelLeft">

            Room

        </span>


        Hallo

    </div>
    <!--

     end view_folder_data.jsp 

    -->

</div>
Ich komme nicht so einfach an den Text, außer ich zerlege:
Code:
var hallo = document.getElementById('hallo');
hallo.textContent;
oder ich verwende:
Code:
var node=raum.querySelectorAll("div")[0];
node.childNodes[2].nodeValue;
Beides scheint mir kein sinnvoller Ansatz zu sein. Kennt ihr eine Möglichkeit.
 
Ich denke, dass die Variante über die TextNode (also 2. Variante) die sauberste ist. Nur ist ein festes Indizieren der Nodes immer gefährlich, da unterschiedliche Browser da oft unterschiedliche Indizes haben (verschiedene Behandlung von Leerzeilen). Ich würde durch die childNodes durchiterieren und dann einfach nur die TextNodes (.nodeType === 3 - https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType ) weiter betrachten:
Code:
var text = [].slice.call(node.childNodes).filter(function(node){
	return node.nodeType === 3;
}).reduce(function(r, node){
	return r + node.nodeValue;
}, "");

Aber für eine definitive Antwort müssten wir wissen, was du eigentlich genau erreichen willst.
 
Zurück
Oben