将元素的所有文本放入数组jQuery

时间:2019-07-16 12:28:09

标签: javascript jquery arrays text each

如果.text()具有<li>行为,那么我将获得所有input个元素中的class个。当下面的示例中包含类actief时,console.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

1 个答案:

答案 0 :(得分:1)

您可以使用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>