将元素的所有文本放入数组jQuery中
Posted
技术标签:
【中文标题】将元素的所有文本放入数组jQuery中【英文标题】:Put all text of elements in array jQuery 【发布时间】:2019-11-25 04:37:08 【问题描述】:如果input
具有class
活动,我将获得所有<li>
元素中的.text()
。它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
【问题讨论】:
您应该在循环外声明该变量并继续向其附加数据。 请创建一个最小、具体且可验证的示例。根据您的代码,我根本无法重现您的问题:jsfiddle.net/teddyrised/bur0j8e2 问题是我不知道怎么做哈哈 嗨,我为你做了一个 jsfiddle。您在第一个 console.log(); 中看到它是正确的,因为它在循环中。在第二个console.log();
中,我想在一个console.log();
jsfiddle.net/zhgyakrs/1
【参考方案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>
【讨论】:
以上是关于将元素的所有文本放入数组jQuery中的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Jquery将具有某个类的所有元素的内容放入一个变量中