jQuery-使用.each()函数基于字符串向项添加类

jQuery-使用.each()函数基于字符串向项添加类,jquery,css,class,crm,each,Jquery,Css,Class,Crm,Each,我有一个从CRM生成的在线菜单。客户可以在CRM中使用3个值中的一个对每个项目进行分类。因此,我已经研究出如何获取值并将其写入适当的位置。让我感到困惑的是,在每个项目中循环,找到类名,然后将它们应用于每个项目而不影响其他菜单项所需的特殊性级别 我可以使用CRM标记将项目id写入每个类,这样我就可以分析每个类,并使用父类仅影响与该项目相关的跨度。。。一, <div class="menu-item-123"> <!-- Each Class modified by CRM id

我有一个从CRM生成的在线菜单。客户可以在CRM中使用3个值中的一个对每个项目进行分类。因此,我已经研究出如何获取值并将其写入适当的位置。让我感到困惑的是,在每个项目中循环,找到类名,然后将它们应用于每个项目而不影响其他菜单项所需的特殊性级别

我可以使用CRM标记将项目id写入每个类,这样我就可以分析每个类,并使用父类仅影响与该项目相关的跨度。。。一,

<div class="menu-item-123"> <!-- Each Class modified by CRM id -->
       <!-- Item in the span below are dynamically generated -->
   <span class="items" style="display:none;">Signature,NewItem</span>

       <!-- jQuery writes list above into classes below -->
   <p class="item-type">
     <span class="icon gf"></span>
     <span class="icon new"></span>
     <span class="icon sig"></span>
   </p>

</div>
您可以在下面的提琴上看到“.each()”对所有项目的影响是相同的,尽管每个项目上的类列表是不同的。这就是我jQuery技能极限的所在。提前感谢您的帮助


这里的小提琴链接-

这是因为您的选择器

$("div[class*='menu-item-'] .items").each(function() {
    var result = $(this).html();
    //replace commas to create class names
    var list = result.replace(/,/gi, " ");
    //add class names to span.icon
    $(this).next().children("span.icon").addClass(list);
});
演示:


您的选择器
$(“span.icon”)
以dom中的所有
span.icon
为目标,而您需要的是
span.icon
,它位于当前
.items
元素的下一个
p
中。

这是因为您的选择器

$("div[class*='menu-item-'] .items").each(function() {
    var result = $(this).html();
    //replace commas to create class names
    var list = result.replace(/,/gi, " ");
    //add class names to span.icon
    $(this).next().children("span.icon").addClass(list);
});
演示:


您的选择器
$(“span.icon”)
针对dom中的所有
span.icon
,而您需要的是
span.icon
,它位于当前
.items
元素的下一个
p
中。

感谢您的帮助!我很高兴事情很简单。谢谢你的帮助,阿伦!我很高兴这件事很简单。