2017-04-05 1 views
0

J'ai ce HTML d'un site externe que j'ai besoin d'analyser avec jQuery. Je suis seulement intéressé par le texte à l'intérieur de la div principale (comme décrit dans le code). Le problème est, si j'utilise $('#main').text(), je reçois tous les textes à l'intérieur de la div, même à partir des divs imbriqués.Comment analyser le texte à l'intérieur d'une div avec d'autres éléments?

<div id="main"> 

    <div><h1>....</h1></div> 
    <div>Other Text</div> 

    I only want to parse this text 

    <div></div> 
    <div></div> 

</div> 

Un conseil?

Répondre

1

Avec Jquery, vous pouvez utiliser contents() qui vous donnera accès à tous les éléments de nœud à l'intérieur du div, après que vous pouvez filtrer pour obtenir seulement les: nœuds texte

var nodeText = $('#main').contents().filter(function(){ 
 
    return this.nodeType === 3 && $.trim(this.nodeValue) !== ''; 
 
}).text() 
 

 
console.log(nodeText)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="main"> 
 
    <div><h1>....</h1></div> 
 
    <div>Other Text</div> 
 
    I only want to parse this text 
 
    <div></div> 
 
    <div></div> 
 
</div>