2016-10-02 33 views
0

我知道这个问题是重复的,但我一直无法找到任何关于它的信息,因为我似乎无法解释正确的问题。使用jQuery为一个对象搜索JavaScript分配的值

我正在使用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数组和对象,但我似乎无法完成此工作。

谢谢!

+1

jQuery在** DOM **中搜索匹配的元素,而不是任意的对象? – adeneo

+0

是的,这不是jQuery的好处,而且这几乎可以肯定是不切实际或可能的 – Howzieky

+0

您没有显示任何生成标记和存储标记数据数组的相关代码 – charlietfl

回答

0

我看着MapBox.js,因为它对我来说是新的。它看起来很有趣。我试图理解你的问题。

但是,首先让我回应您发布的简化示例代码。在使用它之前,最好确保jQuery已经加载。

$(function() { 
}); 

下面的代码将两个属性 '一' 和 'b' 到<body> DOM元素。您可以在Firefox中检查它。

var body = $("body").attr('a', 'avalue'); 
console.log(body);  
body.attr('b', 'bvalue'); 
console.log(body); 

我不太明白你在跟随下面做什么。它没有改变任何html元素。

var $a = $.attr('a'); 
console.log($a); 

是你希望它增加了一个属性的<html> DOM元素,这样就可以在以后使用jQuery像选择以下在产生的运行一些代码“这种”反对呢?

$('[a]').function() { 
});