我有什么
我正在制作一个交互式的步骤地图,并使用SVG处理绘图。我希望它在加载时检查X(一个rss提要)中有多少div,然后对每个div应用一个递增类。我是这样做的:
$(".gs-rss-feed .rss-item").each(function(i) {
$(this).addClass("step" + (i + 1));
}为了解释,我们称之为“RSS-步骤”。所以现在每个rss条目都有一个step+i类。
我还需要访问我的svg,每个条目都只有一个circle类,所以我也想增加它们(这些必须单独递增)。一次可以有更多的这些“地图步骤”而不是RSS项目。
$(".map .circle").each(function(j) {
$(this).addClass("circle" + (j + 1));
}此时,我应该有一个由23个圆圈组成的map div,名为circle+j,还有一个的gs-rss-feed div,直至 23 items,名为step+i。
我搞不懂
现在我有了这些div,我想检查每个circle是否有一个相关的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
感谢你们能给我的任何帮助!谢谢:)
发布于 2017-06-28 15:12:09
如果我正确理解,您必须使用eq()。eq()返回集合中选定元素的索引。eq(n)选择集合的第n个元素。
你写道:
step1存在,circle1存在,将类添加到circle1中
所以基本上你可以选择第n个元素。然后由jQuery来完成剩下的工作。如果没有找到匹配项,则不会添加任何类。
$(".gs-rss-feed .step").each(function(i){
$(".map .circle").eq(i).addClass("filled");
});https://stackoverflow.com/questions/44806141
复制相似问题