从给定行中选择所有属性值(jQuery)

时间:2013-05-07 10:30:37

标签: javascript jquery html

我有以下结构:

<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属性中收集值?

7 个答案:

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

Fiddle Example

var str= $('.tagit-label').first().text();
    $('.tagit-label:not(":first")').each(function(){
        str= str +' , '+ $(this).text();
    });
    alert(str);