26

以下のコードのような同じクラス識別子とデータ属性を持つ、動的に生成された長いリストがあります。

<ul>
    <li class="list" data-id="123">One</li>
    <li class="list" data-id="124">Two</li>
    <li class="list" data-id="125">Three</li>
    <li class="list" data-id="126">Four</li>
    .....etc
</ul>

私が達成しようとしているのは、すべてのdata-id値を取得して次のようにフォーマットすることです。

123|124|125|126....etc

これは、ajax を介してページに渡され、ID がデータベースに存在するかどうかがチェックされます。

var delimited_data="";
$('.list').each(function(){
    delimited_data+=$(this).data('id')+"|";
});
console.log(delimited_data);

この質問をする理由は、10 分後にリスト列のアイテムを別のユーザーに自動的に展開するライブ システムで作業しているためです。コードが正しい方向に進んでいることを確認する必要があるだけです:)

また.list、ページにクラスがない (つまり、クエリを実行する方法がない) かどうかdelimited_dataを確認する必要があります。完全に空になると確信しています。

.each()上記の関数が30秒ごとに実行されることを念頭に置くと、かなり遅くなる可能性があるため、この場合に使用するより良い方法はありますか。

4

3 に答える 3

6

これを使って:

var array = [];

$('li.list').each(function() {
  array.push($(this).data('id'));
})

var joined = array.join('|');
于 2013-06-27T15:05:01.040 に答える