Javascript 使用find过滤掉循环中未定义的内容
如果我从循环中删除一个Javascript 使用find过滤掉循环中未定义的内容,javascript,jquery,ruby,ruby-on-rails-5,Javascript,Jquery,Ruby,Ruby On Rails 5,如果我从循环中删除一个div id,我会得到一个未定义的 HTML: $('.card').each(function() { let demo = $(this).find('.foo').attr('id'); console.log(demo); }); 为了便于讨论,这是一个循环(两次) 这会给我身份证号码。如果我删除id为1或2的div,我会在控制台中得到未定义的,但会得到最后一个id号。我需要防止: $('.card').filter(undefined, functio
div id
,我会得到一个未定义的
HTML:
$('.card').each(function() {
let demo = $(this).find('.foo').attr('id');
console.log(demo);
});
为了便于讨论,这是一个循环(两次)
这会给我身份证号码。如果我删除id为1或2的div,我会在控制台中得到
未定义的
,但会得到最后一个id号。我需要防止:
$('.card').filter(undefined, function() {...});
什么也看不出来。怎么办
编辑:
我正在显示一个替代上面的div class=“foo”
。我有两个循环,但大多数时候只有一个图表。在我的js中:
$('.card').each(function() {
let chartId = $(this).find('.chart-class').attr('id');
let ctx = $(`#${chartId}`);
[// chart data]
});
如果它找到类名为
foo
的元素,它将尝试获取id
属性,如果没有,它将跳过该元素,并且不会返回undefined
,首先,检查是否需要编写
typeof blah == 'undefined'
第二,我不完全确定你想要的效果是什么,但你可以使用下面的东西
$('.card').each(function(){
var fooId = ....find foo id;
if (typeof fooId != 'undefined') {
console.log(fooId);
}
});
加载dom后,您是否发现了什么?您到底想要实现什么?好的,我将给出精确的结果。让我更新一下帖子,“如果我删除id为1或2的div”:向我们展示代码;换句话说,提供一个完整的例子。@JeroenHeier,在rails中。
typeof blah == 'undefined'
$('.card').each(function(){
var fooId = ....find foo id;
if (typeof fooId != 'undefined') {
console.log(fooId);
}
});