如何将每个子项的HTML分配给jQuery中的变量?

时间:2013-03-07 07:49:52

标签: jquery html

如何在jQuery中将每个子项的HTML分配给变量?

例如,我有

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

我希望每个存储在变量中的50和49。我不确定那些div有多少,但是我需要它才能为每个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 个答案:

答案 0 :(得分:1)

如果我理解你是正确的,你想选择这些数字,以便你可以删除这些图像,但你不想删除那些具有keep类的图像。在这种情况下,您可以选择包含video_id的所有元素,并忽略具有keep类的元素(使用:not selector),然后使用.each()循环显示它们并一次阅读一个内容。然后,您可以将内容推送到阵列上。像这样:

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

Working demo

答案 1 :(得分:0)

$(function() {
    $('div','li').each(function() {
        console.log($(this));
    });
});

答案 2 :(得分:0)

var values = [];

$("div.keep").each(function(){
 values[values.length] = $(this).text();
});

答案 3 :(得分:0)

不确定您想要实现的目标,但您可以使用.map方法:

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

这将形成一个包含元素文本的数组。