2011-09-16 105 views
0

我使用jQuery Dynatree複選框在谷歌地圖在這裏過濾按日期標記:特定日期的工作只是罰款http://crocdoc.ifas.ufl.edu/projects/chameleonmapdev/解析對象中的對象以獲取特定屬性的數組?

的複選框,但我有麻煩搞清楚如何最好地月份複選框顯示/隱藏所有適當的標記。我希望某種onChange事件可以附加到日期複選框(因爲如果父複選框確實會得到選中/未選中狀態),但我似乎無法在文檔(http://wwwendt.de/tech/dynatree/doc/dynatree-doc.html#h5.1)中找到類似的東西我正在使用onSelect函數,但如果選擇父級月份,它不會自動定位日期。如果文件夾被選中/取消選中,我希望獲得所有孩子的密鑰數組。到目前爲止,我可以檢索描述所有孩子的對象,但我不知道如何解析它,因爲這些鍵位於該對象內部的對象中。

 onSelect: function(select, node) { 
     console.log('isFolder: '+node.data.isFolder); 
     if (node.data.isFolder === true) { 
      console.log(node.data.children); 
       //Parse node.data.children to get array of child keys 

     } else { 

      if (select === false) { 
       for (g in marker_container[node.data.key]) { 
        marker_container[node.data.key][g].setMap(null); 
       } 
      } 
      if (select === true) { 
       for (g in marker_container[node.data.key]) { 
        marker_container[node.data.key][g].setMap(map); 
       } 

      } 

     } 
     } 

node.data.children回報:

[Object { title="July 12, 2011", select=true, key="July1211"}, Object { title="July 14, 2011", select=true, key="July1411"}, Object { title="July 26, 2011", select=true, key="July2611"}, Object { title="July 27, 2011", select=true, key="July2711"}, Object { title="July 28, 2011", select=true, key="July2811"}] 

任何提示是不勝感激。對於如何改進此代碼的一般建議,我非常樂意提供。

回答

0

解析這裏不是很合適的術語。您在日誌中看到的是描述對象的字符串,但不需要解析它。包含逗號分隔對象的括號[]指示node.data.children是包含子對象的數組。每個對象都有一個名爲「關鍵」屬性,你可以通過遍歷數組像這樣在得到:

if (node.data.isFolder === true) { 
    var keys = []; 
    for (var i = 0; i<node.data.children.length; i++){ 
     keys[i] = node.data.children[i].key; 
    } 
} 
+0
+0

@petroica是的,當然,在我的例子中'長度'丟失了,我不小心通過複製和粘貼刪除它,我想。 – Kapep

相關問題