1

私は次の構造を持っています:

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

スパン行のすべての値属性から値を収集するにはどうすればよいですか?

4

7 に答える 7

1

.map()を使用する

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

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

デモ:フィドル

于 2013-05-07T10:39:26.853 に答える
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これがmethodの詳細を学ぶのに役立つことを願っています。http://jsfiddle.net/6TnMT/

于 2013-05-07T10:55:32.830 に答える
1

あなたはこれを行うことができます:

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

console.log(arr);
于 2013-05-07T10:40:42.103 に答える
0

フィドルの例

var str= $('.tagit-label').first().text();
    $('.tagit-label:not(":first")').each(function(){
        str= str +' , '+ $(this).text();
    });
    alert(str);
于 2013-05-07T10:44:33.200 に答える