首页 > 解决方案 > 将元素的所有文本放入数组jQuery中

问题描述

如果有活动,我会得到.text()所有<li>元素。当例如以下具有类活动时,它就像这样。inputclassconsole.log

Example 1
Example 3
Example 5

但是当我把它放在一个variable东西里打印它时,它只打印: Example 5

我希望它像在console.log.

$("li").each(function () {
  if ($(this).find("input").hasClass("actief")) {
    content = $(this).find("span.titel").text();
    console.log(content);
  }
});

console.log(content);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li><span class="titel">Example 1</span><input class="actief" /></li>
<li><span class="titel">Example 2</span><input/></li>
<li><span class="titel">Example 3</span><input class="actief" /></li>
<li><span class="titel">Example 4</span><input/></li>
<li><span class="titel">Example 5</span><input class="actief" /></li>
</ul>

我希望第二个console.log();不仅打印Example 5而且打印这个:

Example 1
Example 3
Example 5

标签: javascriptjqueryarraystexteach

解决方案


您可以map()改为使用来获取数组并使用:has选择器来过滤适用的<li>

var textArray = $("li:has(.actief) span.titel").map(function () {
  return $(this).text();      
}).get();

console.log(textArray);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li><span class="titel">Example 1</span><input class="actief" /></li>
<li><span class="titel">Example 2</span><input/></li>
<li><span class="titel">Example 3</span><input class="actief" /></li>
<li><span class="titel">Example 4</span><input/></li>
<li><span class="titel">Example 5</span><input class="actief" /></li>
</ul>


推荐阅读