0

我在这里使用 jQuery Dynatree 复选框在 Google 地图中按日期过滤标记: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"}]

非常感谢任何提示。我非常愿意接受有关如何总体改进此代码的任何建议。

4

1 回答 1

0

解析在这里并不完全正确。您在日志中看到的是描述对象的字符串,但无需解析它。括号[和括]住逗号分隔的对象,表示这node.data.children是一个包含子对象的数组。每个对象都有一个名为“key”的属性,您可以通过像这样遍历数组来获得该属性:

if (node.data.isFolder === true) {
    var keys = [];
    for (var i = 0; i<node.data.children.length; i++){
        keys[i] = node.data.children[i].key;
    }
}
于 2011-09-16T19:49:50.863 回答