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

时间:2017-04-05 19:42:41

标签: javascript jquery html parsing html-parsing

我从外部网站获得这个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>

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

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

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

console.log(nodeText)
&#13;
<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>
&#13;
&#13;
&#13;