我需要将div中的所有跨度值提取到数组或字符串
var tag_text_arr=$("#div_id span").each(function(){ return $(this).text(); });
实际上我需要获取div中的所有span值,并希望创建一个像这样的字符串
span1_val | span2_val | span3_val | span4_val
如果有可能,请解释一下......
答案 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)
spann_
函数:
$.map()
答案 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)
var arr = $("span").get().map(el => el.textContent);
console.log(arr)

<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;
答案 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