jQuery .text()多个元素相同的类

时间:2015-02-17 10:29:31

标签: jquery text each

我试图在页面上的多个(未知数量)元素上使用.text()。

考虑:

<ul>
    <li class="myClass">element1</li>
    <li class="myClass">element2</li>
    <li class="myClass">element3</li>
</ul>
$('.myClass').text();

将返回第一个元素&#34; element1&#34;。

我环顾四周时看到了以下内容:

$('.myClass').each(function(index, obj)
{
   // do something
});

但是,这个简单的查询返回每个完整的元素,如:

<li class="myClass">element1</li>
<li class="myClass">element2</li>
<li class="myClass">element3</li>

我需要返回所有元素的文字,例如:

&#34;元素1&#34; &#34;在element2&#34; &#34;元素3&#34;

谢谢!

4 个答案:

答案 0 :(得分:10)

您可以使用map()检索一组元素的特定属性并将它们放在一个数组中:

var textValues = $('.myClass').map(function() {
    return $(this).text();
}).get();

从那里你可以使用数组来根据需要创建字符串,例如,使用join()

console.log(textValues.join(', ')); // = 'element1, element2, element3'

&#13;
&#13;
var textValues = $('.myClass').map(function() {
  return $(this).text();
}).get();

console.log(textValues.join(', ')); // = 'element1, element2, element3'
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li class="myClass">element1</li>
  <li class="myClass">element2</li>
  <li class="myClass">element3</li>
</ul>
&#13;
&#13;
&#13;

答案 1 :(得分:8)

&#13;
&#13;
var x =[];
$('.myClass').each(function(index, obj)
{
  x.push($(this).text());
});

console.log(x);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
    <li class="myClass">element1</li>
    <li class="myClass">element2</li>
    <li class="myClass">element3</li>
</ul>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

简单地连接.each内的文字。这是DEMO

这是修改过的jQuery:

 $(function() {
    var names = '';
    $('.myClass').each(function(index, obj) {
        names += $(this).text() +',';
    });
    alert(names);
});

答案 3 :(得分:0)

使用$(this)..!

var string = null;

$('.myClass').each(function(index, obj){
    // do something
    string += $(this).text();
});