我正在使用jQuery Dynatree复选框在Google地图中按日期过滤标记:http://crocdoc.ifas.ufl.edu/projects/chameleonmapdev/
特定日期的复选框工作正常,但我无法弄清楚如何最好地使月份复选框显示/隐藏所有适当的标记。我希望某些onChange事件可以附加到日期复选框(因为如果父复选框确实如此,它们会被检查/取消选中),但我似乎无法在文档中找到类似的内容({{3因此我使用的是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 :(得分: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;
}
}