如何用其他元素解析 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>
我有来自外部网站的 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>