我正在处理应用程序中的某个功能。我使用Javascript将指标附加到元素。我为需要指示符的元素添加了一个类,但是一些元素被多次加载,导致显示多个指示符,我只想显示每个元素一个。每个具有这样一个类的元素,也都有一个具有唯一data-connect-id的属性(当它多次加载到页面上时,它不再是唯一的。)
现在,我如何仅将指标附加到每个唯一属性值的第一个匹配项?这适用于一个:
$(".connector[data-connect-id = '2']").first().append("<div class='indicator'></div>");
但这只适用于一个指定的data-connect-id。它应该查找所有唯一的data-connect-id,但我该怎么做?
答案 0 :(得分:2)
听起来您想要旋转文档并将指标div添加到具有给定data-connect-id
值的第一个元素,而不事先知道值。我无法想到比循环更优雅的东西:
var seen = {};
$(".connector[data-connect-id]").each(function() {
var connector = $(this);
var id = connector.attr("data-connect-id");
if (!seen[id]) {
connector.append(/*...*/);
seen[id] = true;
}
});
我的意思是,您可以提前收集所有ID,然后使用您的first
示例进行循环,但效率会降低。