我有一个从 CRM 生成的在线菜单。每个项目都可以由客户在 CRM 中使用 3 个值之一进行分类。所以我已经研究出如何获取值并将它们写入正确的位置。让我感到困惑的是遍历每个项目所需的特异性水平,找到类名,然后将它们应用于每个项目而不影响其他菜单项。
我可以使用 CRM 标签,将项目 ID 写入每个类,这样我就可以解析每个类并使用父类仅影响该项目的跨度... i。
<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>
现在我只需要关于如何让 jQuery 执行“.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
$("span.icon").addClass(list);
});
您可以在下面的小提琴中看到“.each()”对所有项目的影响都是相同的,即使每个项目上的类列表是不同的。这就是我的 jQuery 技能限制让我着迷的地方。提前感谢您的帮助!
小提琴链接在这里 - http://jsfiddle.net/archetypestudio/77rvc/1/