2

ので、私は持っています:

<li id="foo">
   <span> bar </span>
   <ul>
   <li>
      <span id="1234"></span>
   </li>
   <li>
      <span id="5678"></span>
   </li>

   </ul>
</li>

スパンIDを連結して、var foobar="12345678"にする必要があります

PSスパンIDは動的/不明である可能性があるため、「foo」のIDを持つ一番上のLiから作業を開始する必要があります。

ありがとう!

4

5 に答える 5

4

これを試して:

var foobar = "";
$('#foo span[id]').each(function(){
   foobar += this.id
})
于 2012-08-09T16:43:17.747 に答える
1

このようなもの:

window.concat = "";
$('#foo li span').each(function () {
  window.concat += $(this).attr('id');
});
console.log(window.concat);

フィドル: http: //jsfiddle.net/Nfsg5/1/

于 2012-08-09T16:42:30.380 に答える
1

これを使って:

var foobar = '';
$('#foo li span').each(function() { 
    foobar += $(this).attr('id'); 
});

JSFIDDLE

于 2012-08-09T16:43:21.190 に答える
1

他のみんなが使って.each()います。これは少し簡単.map()です...

var ids = $.map($("#foo span[id]"), function(el) {
                                       return el.id;
                                    }).join("");

また、has-attributeセレクターを使用spanして、ID属性を持つ要素のみを取得するようにしました。

デモ:http: //jsfiddle.net/rgNRH/


または、ネイティブを使用できますArray.prototype.map...

var ids = $("#foo span[id]").toArray()
                            .map(function(el) {
                                    return el.id;
                                 }).join("");

デモ:http: //jsfiddle.net/rgNRH/1/


良い点.map()は、外部変数に依存しないため、関数を保存して再利用できることです...

var mappers = {
    getIDs: function(el, i) { return el.id; }
    /* other mapping functions */
};

...必要に応じて使用してください...

var ids = $.map($("#foo span[id]"), mappers.getIDs).join("");
于 2012-08-09T16:57:32.230 に答える
0
var ids = '';
$('#foo li span').attr('id',function() {
    ids += this.id;
});

作業サンプル

于 2012-08-09T16:43:53.473 に答える