2013-05-07 40 views
1

我有以下的結構屬性值:選擇所有從給定的行(jQuery的)

<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,..." 

如何我是否在跨度行處收集來自所有value屬性的值?

回答

3

這應該工作:

$('#myTags input[name="tags"]').map(function() { 
    return $(this).val(); 
}).get().join(","); 
2

試試這個

var textArr = []; 
$(".tagit-label").each(function(){ 
    textArr.push($(this).text()); 
}) 
console.log(textArr.join()); 
0
var spans = $(".tagit-label"); 
    var str = ""; 
    for (i = 0; i < spans.length; i++) { 

     str += spans[i].innerHTML+"," ; 
    } 
    alert(str); 
1

使用.map()

var array = $('.tagit-label').map(function(){ 
    return $(this).text() 
}).get() 

console.log(array.join(',')) 

演示:Fiddle

1

你可以這樣做:

var arr = $('#myTags .tagit-label').map(function() { 
    return $(this).text(); 
}).get().join(","); 

console.log(arr); 
0

Fiddle Example

var str= $('.tagit-label').first().text(); 
    $('.tagit-label:not(":first")').each(function(){ 
     str= str +' , '+ $(this).text(); 
    }); 
    alert(str); 
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/

+0

你可以用'.CALL()',而不是'。適用()'這樣你就不需要換你的論點數組,然後你還不如用一個空字符串種子它, ($。'tagit-label'),function(s,n){return s.concat($(n).text()); },「」);' – 2013-05-07 11:02:24

+0

哦,除了OP想要逗號。錯過了。可以將',「,」'添加到concat,但是你需要修剪尾部的'「,」'。 – 2013-05-07 11:06:50

+0

@squint謝謝你的留言 – rab 2013-05-07 11:06:53

相關問題