2013-03-07 14 views
1

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

例如,我有

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

我希望50和49的每个存储在变量中。我不确定那里有多少个div,但我需要它为每个div工作。除了使用for循环之外,有没有更简单的方法来完成此操作?

只是为了上下文,我使用这些值从DOM中删除视频缩略图(这就是为什么我添加了“保持”类缩略图,我不会删除)。

更新:这里是我用来过滤视频点击类别时的代码。

$('.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(); 
}); 
+0

我认为在jQuery $ .each是要走的路...... – 2013-03-07 07:51:48

+0

使用一个循环,并将它们推到一个数组上。 – Barmar 2013-03-07 07:51:50

回答

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

+0

太棒了,谢谢!我在另一个线程中读到,将数组长度设置为0会清除数组,但似乎没有这样做。 该功能在单击类别时运行。他们过滤视频选择。 代码: $( '分类 ')点击(函数(){$ (本)。儿童()addClass(' 保持'); VAR号码= []; numbers.length = 0; 。 $(“。video_id:not(.keep)”)。each(function(){'.thumbnails:gt(8)')。remove(); updatePaginate(); }); – theintellects 2013-03-07 08:06:40

+0

@theintellects我的荣幸!将数组长度设置为零应该可以清除它。这是[示例](http://jsfiddle.net/JJ3sZ/2/)。 – 2013-03-07 08:09:00

+0

最后一个问题:如何删除不包含此文本的$('缩略图video_id')元素?我在http://jsfiddle.net/JJ3sZ/4/的HTML中添加了其中一个元素的示例? 再次感谢! – theintellects 2013-03-07 08:21:35

0
$(function() { 
    $('div','li').each(function() { 
     console.log($(this)); 
    }); 
}); 
0
var values = []; 

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

不知道你想要什么来实现的,但你可以使用.map方法:

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

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

相关问题