1

各子のHTMLをjQueryの変数に割り当てるにはどうすればよいですか?

たとえば、私は

<li>
    <div class="hide video_id keep">50</div>
    <div class="hide video_id keep">49</div>
</li>

そして、それぞれ変数に格納された 50 と 49 が必要です。これらの div がいくつあるかはわかりませんが、それぞれで機能する必要があります。for ループを使用する以外に、これを達成する簡単な方法はありますか?

コンテキストのために、これらの値を使用して DOM からビデオ サムネイルを削除しています (これが、削除しないサムネイル用の "keep" クラスを追加した理由です)。

更新: カテゴリがクリックされたときにビデオをフィルタリングするために使用しているコードは次のとおりです。

$('.category').click(function() {
    $(this).children().addClass('keep');
    var numbers = [];
    $(".video_id:not(.keep)").each(function () {
        numbers.push($(this).text());
    });
    console.log(numbers);
    $('.thumbnails:gt(8)').remove();
    updatePaginate();
});
4

4 に答える 4

1

あなたが正しいことを理解していれば、それらの画像を削除できるように番号を選択したいのですが、keepクラスを持つものは削除したくないでしょう。その場合、 を持つすべての要素を選択し、 :not セレクターを使用してクラスvideo_idを持つ要素を無視し、 .each()を使用してそれらをループし、一度に 1 つずつコンテンツを読み取ることができます。その後、コンテンツを配列にプッシュできます。このようなもの:keep

var numbers = [];
$(".video_id:not(.keep)").each(function () {
   numbers.push($(this).text());
});
console.log(numbers);

ワーキングデモ

于 2013-03-07T07:54:31.960 に答える
0
$(function() {
    $('div','li').each(function() {
        console.log($(this));
    });
});
于 2013-03-07T07:52:25.267 に答える
0
var values = [];

$("div.keep").each(function(){
 values[values.length] = $(this).text();
});
于 2013-03-07T07:53:10.553 に答える
0

何を達成したいのか正確にはわかりませんが、.mapメソッドを使用できます:

var arr = $('div.keep').map(function() { return $(this).text(); }).get();

これにより、要素テキストを含む配列が形成されます。

于 2013-03-07T07:54:59.550 に答える