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);
          }
  });