检查div并将类添加到相关的div中?

时间:2017-06-28 14:59:42

标签: jquery

我有什么

我正在制作一个交互式步骤地图,并使用SVG来处理绘图。我希望它检查加载X中的div(rss feed)有多少div,然后对每个div应用递增类。我这样做是这样的:

$(".gs-rss-feed .rss-item").each(function(i) {
  $(this).addClass("step" + (i + 1));
}

为了便于解释,我们将此称为“RSS-Step"”。所以现在每个rss-item都有一个step+i类。

我还需要访问我的svg,每个项目只有一个circle类,所以我想增加它们(这些必须单独递增)。可以有更多这些" Map-Steps"而不是RSS项目。

$(".map .circle").each(function(j) {
  $(this).addClass("circle" + (j + 1));
}

此时,我应该有一个名为map的23个圈子的circle+j div和 gs-rss-feed div 23项,名为step+i

我无法搞清楚

现在我有了这些div,我想检查每个step是否有相关的circle。基本上,如果有circle-7,请检查是否有step-7,然后将类添加到circle-7。我可以使用23个条件来完成此操作,但宁愿在循环中找到一种方法来最小化代码。

到目前为止,我有这样的事情:

检查步长是否大于0,然后检查该圆长是否也大于0,如果为真,则添加filled

if($('.gs-rss-feed .step' + i.length > 0 && $('.map .circle') + j.length > 0 )){
    $('.bridge'+this).addClass('filled');
  }

我认为最终我无法弄清楚如何检查某个类的i值是否=另一个类的j值。如果他们是平等的,那就像是说:

step1存在,circle1存在,将类filled添加到circle1

感谢你们给我的任何帮助!谢谢:))

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你必须使用 eq() eq()返回集合中所选元素的索引。 eq(n)选择集合的第n个元素。

你写道:

  

step1存在,circle1存在,添加类填充到circle1

所以基本上你可以选择第n个元素。然后jQuery将完成剩下的工作。如果没有找到匹配项,则不会添加任何课程。

$(".gs-rss-feed .step").each(function(i){
    $(".map .circle").eq(i).addClass("filled");

});