2016-10-02 20 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() { 
});