如何用其他元素解析 div 中的文本?

How do I parse the text inside a div with other elements?

我有来自外部网站的 HTML,我需要使用 jQuery 进行解析。我只对主 div 中的文本感兴趣(如代码中所述)。

问题是,如果我使用 $('#main').text(),我会得到 div 内的所有文本,甚至来自嵌套的 divs.

<div id="main">  

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

  I only want to parse this text

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

</div>

有什么建议吗?

使用 Jquery,您可以使用 contents(),这将使您可以访问 div 内的所有节点元素,之后您可以过滤以仅获取 TextNodes:

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>