如何select每个唯一属性值的第一个匹配元素Javascript/Jquery?
How to select the first matched element for each unique attribute value with Javascript/Jquery?
我正在处理应用程序中的一项功能。我使用 Javascript 将指示符附加到元素。我向需要指示器的元素添加了 class,但某些元素被多次加载,导致显示多个指示器,而我只想为每个元素显示一个。每个具有这样 class 的元素还具有一个具有唯一数据连接 ID 的属性(只是当它多次加载到页面上时不再唯一)。
现在,我如何仅将指示符附加到每个唯一属性值的每个第一个匹配项?这适用于一个人:
$(".connector[data-connect-id = '2']").first().append("<div class='indicator'></div>");
但这仅适用于一个指定的数据连接 ID。它应该查找所有唯一的数据连接 ID,但我该怎么做?
听起来您想快速浏览文档并将指示符 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
例子做一个循环,但是这样效率会低一些。
我正在处理应用程序中的一项功能。我使用 Javascript 将指示符附加到元素。我向需要指示器的元素添加了 class,但某些元素被多次加载,导致显示多个指示器,而我只想为每个元素显示一个。每个具有这样 class 的元素还具有一个具有唯一数据连接 ID 的属性(只是当它多次加载到页面上时不再唯一)。
现在,我如何仅将指示符附加到每个唯一属性值的每个第一个匹配项?这适用于一个人:
$(".connector[data-connect-id = '2']").first().append("<div class='indicator'></div>");
但这仅适用于一个指定的数据连接 ID。它应该查找所有唯一的数据连接 ID,但我该怎么做?
听起来您想快速浏览文档并将指示符 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
例子做一个循环,但是这样效率会低一些。