如何使用Javascript/Jquery为每个唯一的属性值选择第一个匹配的元素
How to select the first matched element for each unique attribute value with Javascript/Jquery?
我正在开发应用程序中的一个功能。我使用Javascript将指示符附加到元素中。我向需要指示符的元素添加了一个类,但有些元素被多次加载,导致显示多个指示符,并且我只想每个元素显示一个指示符。每个有这样一个类的元素都有一个具有唯一数据连接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
示例进行循环,但效率较低。
相关文章:
- jQuery最近父级的数据属性选择器
- 如何使用jQuery按数据日期属性选择元素
- 如何为HTML属性/选择器创建全局名称空间或变量
- 使用 jquery .find() 遍历按类和存储属性选择元素
- 属性选择器不起作用(语法错误、无法识别的表达式)
- 难以获取使用属性选择的节点的子节点
- 根据属性选择元素
- 按给定值的属性选择元素
- 选择由类和属性选择的元素的邻居
- 为什么属性选择器不适用于jQuery
- 基于多属性选择查找选定单选按钮值
- JQuery中的CSS属性选择器
- 使用 jQuery 通过 ID 属性选择 HTML 元素
- Jquery $this属性选择器是否包含单词
- 使用 *= 的 jQuery 属性选择器
- 如何根据属性选择功能
- 如何在jQuery中定义条件属性选择器
- 不区分大小写的 jQuery 属性选择器
- 仅按属性选择元素
- 通过动态更改的属性选择元素