Javascript 将标识符添加到独立嵌套组中的重复类
在使用下面这样的代码块时,我试图向类“duplicated class”的每个实例添加一个唯一的类名,该类与类“affiliate logo”位于同一元素上 重要提示:Javascript 将标识符添加到独立嵌套组中的重复类,javascript,jquery,Javascript,Jquery,在使用下面这样的代码块时,我试图向类“duplicated class”的每个实例添加一个唯一的类名,该类与类“affiliate logo”位于同一元素上 重要提示: “复制类”表示一个动态变量,可以是任何东西 期望的结果是用数字('.class-1'、'.class-2'、'.class-3'等)附加重复的类 下面是代码结构的一个示例: <div id="integrations"> <div class="post-item" data-name="name">
<div id="integrations">
<div class="post-item" data-name="name">
<div class="rss-card" style="">
<div class="hs-rss-item">
<div class="rss-item-banner">
<img class="hs-rss-featured-image" src="" alt="">
<div class="affiliate-logo duplicate-class"><img src="" alt=""></div>
</div>
</div>
</div>
</div>
<div class="post-item" data-name="name">
<div class="rss-card" style="">
<div class="hs-rss-item">
<div class="rss-item-banner">
<img class="hs-rss-featured-image" src="" alt="">
<div class="affiliate-logo duplicate-class"><img src="" alt=""></div>
</div>
</div>
</div>
</div>
<div class="post-item" data-name="name">
<div class="rss-card" style="">
<div class="hs-rss-item">
<div class="rss-item-banner">
<img class="hs-rss-featured-image" src="" alt="">
<div class="affiliate-logo different-class"><img src="" alt=""></div>
</div>
</div>
</div>
</div>
</div>
post-item
组是从COS列表生成的,其中“重复类”是从{{name}}值中提取的,该值必须允许重复的值条目
虽然我可以找到为包装ID的直接后代生成类列表的方法,但我似乎找不到(或弄清楚)在生成的结构中嵌套得更深时产生查找“重复类”结果的任何方法
我最初的想法是:
post项
组post项目组中查找“.affiliate logo”类
.duplicate class
)旁边的第二个类,并将其分配给变量(var=adjacentClass
)更新2
在代码片段2中,我们使用了.each()
两次。一次迭代每个div.affiliate-logo
,一次迭代第二个类,每个div.affiliate-logo
都有。Afor
循环过滤存储在数组中的重复项。最困难的部分是OP在获取第二个类时遇到的问题。以下是:
在普通JavaScript中,classList
是一个属性,当它在没有任何的情况下使用时。add
、remove
等。它将返回一个类名数组(在代码段2的注释中,此数组中对字符串的任何引用都将是“classString”)
以整页模式查看代码段2。详细信息在代码段2中注释。
更新1
第一个“重复类”变为“重复类-1”,第二个变为“重复类-2”
不确定您想做什么。我认为您认为类与元素一样类似于DOM对象。请查看代码段,让我知道这是否是您想要的
片段1
$('.duplicate class')。每个(函数(idx、obj){
var unique='重复类'+(idx+1);
$(此).addClass(唯一)
$(this.text('this'+unique);//这只是为了说明它是有效的
});
div{
边框:1px纯黑;
高度:40px;
宽度:200px;
填充:10px;
颜色:白色;
背景:rgba(0,0,0,3);
}
.附属公司标志{
边框:2个红色虚线;
}
更新2 在代码片段2中,我们使用了
.each()
两次。一次迭代每个div.affiliate-logo
,一次迭代第二个类,每个div.affiliate-logo
都有。Afor
循环过滤存储在数组中的重复项。最困难的部分是OP在获取第二个类时遇到的问题。以下是:
在普通JavaScript中,classList
是一个属性,当它在没有任何的情况下使用时。add
、remove
等。它将返回一个类名数组(在代码段2的注释中,此数组中对字符串的任何引用都将是“classString”)
以整页模式查看代码段2。详细信息在代码段2中注释。
更新1
第一个“重复类”变为“重复类-1”,第二个变为“重复类-2”
不确定您想做什么。我认为您认为类与元素一样类似于DOM对象。请查看代码段,让我知道这是否是您想要的
片段1
$('.duplicate class')。每个(函数(idx、obj){
var unique='重复类'+(idx+1);
$(此).addClass(唯一)
$(this.text('this'+unique);//这只是为了说明它是有效的
});
div{
边框:1px纯黑;
高度:40px;
宽度:200px;
填充:10px;
颜色:白色;
背景:rgba(0,0,0,3);
}
.附属公司标志{
边框:2个红色虚线;
}
对不起,让我澄清一下:我希望能够找到“duplicate class”项,然后在该类上添加一个唯一的值(即,第一个“duplicate class”变成“duplicate-class-1”,第二个变成“duplicate-class-2”)。您看过jquery的同级()了吗?这可以通过一个选择器来完成,因此您可以简单地获得具有所选类的给定节点的任何同级,但我不知道如何从单独的嵌套组中找到具有相同类的元素。例如,在页面上找到所有的“.affiliate group.name-a”组合,然后仅将“.name-a”类修改为唯一类(“.name-a-1、.name-a-2等)。我不知道。第二个类(子类?)是可能
$(this).prop('classList');