【发布时间】:2016-10-03 04:12:15
【问题描述】:
我知道这个问题是重复的,但我找不到任何关于它的信息,因为我似乎无法说出正确的问题。
我正在使用 MapBox.js 并创建了一个标记,该标记在其弹出消息中有一个按钮,可让您删除显示弹出窗口的标记。我从 Stack Overflow 获得了有效的代码,但它使用一个类来定位标记,我想为标记分配一个属性/属性,无论如何,我可以使用它来专门定位具有它的一个标记.我使用常规的 JavaScript 对象成员分配来做到这一点:
marker.uniqueID = Date.now().toString();
然后将 marker.uniqueID 分配给弹出消息中的删除按钮。 我使用了 Chrome 检查器,可以在标记对象和删除按钮 html 元素中看到这些分配的值。但是,当我尝试使用按钮的分配值查找地图标记时:
$( '.marker-delete-button[uniqueID="12345"]')
我使用上述和其他几个选择器返回一个空的匹配列表。因此,为了简化这一点,我创建了以下代码,得到了相同的结果:
<!DOCTYPE html>
<html>
<head>
<meta charset=UTF-8/>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
</head>
<body>
<script>
console.clear();
var obj1 = { text: 'obj1' };
var obj2 = { text: 'obj2' };
var obj3 = { text: 'obj3' };
obj1.a=1;
obj2.a=2;
obj3.a=3;
var $a = $.attr( 'a' );
console.log( $a );
console.log( obj1 );
</script>
</body>
</html>
那么,我哪里错了?我知道我应该能够搜索具有特定属性/属性和特定值的 JavaScript 数组和对象,但我似乎无法完成这项工作。
谢谢!
【问题讨论】:
-
jQuery 在 DOM 中搜索匹配元素,而不是任意对象?
-
是的,这不是 jQuery 的优点,而且这几乎肯定是不切实际或不可能的
-
您没有显示任何生成标记和存储标记数据数组的相关代码