需要将div中的所有span值作为数组或字符串获取?

时间:2010-12-02 16:30:58

标签: jquery

我需要将div中的所有跨度值提取到数组或字符串

var tag_text_arr=$("#div_id span").each(function(){
        return $(this).text();
    });

实际上我需要获取div中的所有span值,并希望创建一个像这样的字符串

span1_val | span2_val | span3_val | span4_val

如果有可能,请解释一下......

8 个答案:

答案 0 :(得分:14)

这应该输出你需要的字符串:

var arr = [];
$("#div_id span").each(function(index, elem){
    arr.push("span" +index+ "_" + $(this).text());
});
return arr.join("|");

工作演示:http://jsfiddle.net/HmUUB/

这将在span0开始编号,而不是span1。如果您希望从span1开始,请使用+(index + 1)+代替+index+(example)

<小时/> 如果我错误地读了你的问题(并且你不希望{1}}为字符串中的每个元素添加前缀,你可以使用jQuery的spann_函数:

$.map()

工作演示:http://jsfiddle.net/BQLj6/

答案 1 :(得分:2)

使用jQuery map方法返回所需文本的数组,然后使用join将它们连接起来。

var x = $.map($("span"), function(item) {
    return $(item).text();
}).join("|");

alert(x);

jsFiddle这里:http://jsfiddle.net/Ewdge/

答案 2 :(得分:1)

var spanValues = [];
var tag_text_arr=$("#div_id span").each(function(){
    spanValues.push($(this).text());
});
var pipedSpanValues = spanValues.join("|");

答案 3 :(得分:1)

&#13;
&#13;
var arr = $("span").get().map(el => el.textContent);

console.log(arr)
&#13;
<span>Lorem</span>
<span>ipsum</span>
<span>dolor</span>
<span>sit amet</span>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 4 :(得分:0)

final val;

var tag_text_arr=$("#div_id span").each(function(){
        val=val+ $(this).text()  + "|";
    });

alert(val.substring(0,val.length-1));

这应该做

答案 5 :(得分:0)

你已经完成了大部分工作。你可以

一个。将$(this).text()的输出附加到数组,并将.join()附加到带有管道的数组,或者 B.将$(this).text()的输出+管道符号连接到字符串,然后在循环后删除最后的管道。

答案 6 :(得分:0)

你差不多......

var span_text = "";
$("#div_id span").each(function() {
    span_text += $(this).text() + "|";
});
var span_text.substring(0, span_text.length - 1); // remove the trailing | character.

答案 7 :(得分:0)

这样的事情可以解决问题:

var result = $('#div_id').find('span').map( function(i,e){
  return $(e).text();
})
.get()      // Stop here for an array
.join('|'); // or here for a string