如何使用Javascript / Jquery为每个唯一属性值选择第一个匹配的元素?

时间:2015-11-26 09:55:16

标签: javascript jquery jquery-selectors

我正在处理应用程序中的某个功能。我使用Javascript将指标附加到元素。我为需要指示符的元素添加了一个类,但是一些元素被多次加载,导致显示多个指示符,我只想显示每个元素一个。每个具有这样一个类的元素,也都有一个具有唯一data-connect-id的属性(当它多次加载到页面上时,它不再是唯一的。)

现在,我如何仅将指标附加到每个唯一属性值的第一个匹配项?这适用于一个:

$(".connector[data-connect-id = '2']").first().append("<div class='indicator'></div>");

但这只适用于一个指定的data-connect-id。它应该查找所有唯一的data-connect-id,但我该怎么做?

1 个答案:

答案 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示例进行循环,但效率会降低。