我有以下结构:
<ul id="myTags"">
<li>
<span class="tagit-label">AA</span>
<a>
<span class="text-icon">×</span>
<span class="ui-icon ui-icon-close"></span>
</a>
<input type="hidden" name="tags" value="AA" style="display:none;">
</li>
<li>
<span class="tagit-label">BB</span>
<a class="tagit-close">
<span class="text-icon">×</span>
<span class="ui-icon ui-icon-close"></span>
</a>
<input type="hidden" name="tags" value="BB" style="display:none;">
</li>
....
</ul>
我想写一个Javascript / jQuery函数,它将创建一个由
组成的字符串"AA,BB,..."
如何从span行的所有value属性中收集值?
答案 0 :(得分:3)
这应该有效:
$('#myTags input[name="tags"]').map(function () {
return $(this).val();
}).get().join(",");
答案 1 :(得分:2)
试试这个
var textArr = [];
$(".tagit-label").each(function(){
textArr.push($(this).text());
})
console.log(textArr.join());
答案 2 :(得分:1)
使用.map()
var array = $('.tagit-label').map(function(){
return $(this).text()
}).get()
console.log(array.join(','))
演示:Fiddle
答案 3 :(得分:1)
你可以这样做:
var arr = $('#myTags .tagit-label').map(function () {
return $(this).text();
}).get().join(",");
console.log(arr);
答案 4 :(得分:1)
这是我迟到的答案。为了好玩,我尝试了javascript 1.8数组reduce
方法。
var string = [].reduce.apply( $('.tagit-label') , [ function( ar , n ){
return ar.push( $(n).text() ) && ar ;
},[] ] ).join();
或只是
var string = [].reduce.call( $('.tagit-label') , function( ar , n ){
return ar.push( n.innerHTML ) && ar ;
},[] ).join();
希望这有助于在reduce
方法上学习更多内容。 http://jsfiddle.net/6TnMT/
答案 5 :(得分:0)
var spans = $(".tagit-label");
var str = "";
for (i = 0; i < spans.length; i++) {
str += spans[i].innerHTML+"," ;
}
alert(str);
答案 6 :(得分:0)
var str= $('.tagit-label').first().text();
$('.tagit-label:not(":first")').each(function(){
str= str +' , '+ $(this).text();
});
alert(str);