假设我有这个HTML:
<nav>
<div>
text 1
</div>
<p>
text 2
</p>
<p>
<a>
text 3
</a>
text 4
</p>
</nav>
如何使用JQuery获取这样的数组:
['text 1', 'text 2', 'text 3', 'text 4']
答案 0 :(得分:2)
var pTxtNode = $('p').map(function(){
return $(this).text().trim()
}).get();
console.log(pTxtNode)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav>
<div>
<p>
text 1
</p>
</div>
<p>
text 2
</p>
<p>
<a>
text 3
</a>
text 4
</p>
</nav>
&#13;
您可以将.map()
与.get()
:
$('p').map(function(){
return $(this).text()
}).get();
此外,如果要包含p标记之外的文本节点,请使用.contents
.filter
函数:
$('nav').contents().filter(function() {
return this.nodeType === Node.TEXT_NODE ; //3
});;