我有什么
我正在制作一个交互式步骤地图,并使用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
感谢你们给我的任何帮助!谢谢:))
答案 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");
});