如何在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();
});
答案 0 :(得分:1)
如果我理解你是正确的,你想选择这些数字,以便你可以删除这些图像,但你不想删除那些具有keep
类的图像。在这种情况下,您可以选择包含video_id
的所有元素,并忽略具有keep
类的元素(使用:not selector),然后使用.each()循环显示它们并一次阅读一个内容。然后,您可以将内容推送到阵列上。像这样:
var numbers = [];
$(".video_id:not(.keep)").each(function () {
numbers.push($(this).text());
});
console.log(numbers);
答案 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();
这将形成一个包含元素文本的数组。