在JQuery中获取最后一个孩子的所有文本

时间:2017-09-14 10:15:11

标签: jquery

假设我有这个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']

1 个答案:

答案 0 :(得分:2)

&#13;
&#13;
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;
&#13;
&#13;

您可以将.map().get()

一起使用
$('p').map(function(){
  return $(this).text()
}).get();

此外,如果要包含p标记之外的文本节点,请使用.contents .filter函数:

 $('nav').contents().filter(function() {
   return this.nodeType === Node.TEXT_NODE ; //3
 });;