This question already has answers here:
How to get the text node of an element?
                            
                                (10个答案)
                            
                    
                3年前关闭。
        

    

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

问题是,如果我使用$('#main').text(),即使从嵌套的div中,我也会在div中获得所有文本。

<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>

10-06 15:45