2011-09-16 6 views
0

は、私はここでGoogleマップに日付別のマーカーをフィルタリングするための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

'私は右、node.data.children.length' <?長さを追加するとき、このコードは私が望んでいたことをします。ご協力ありがとうございました! – petroica

+0

@petroicaもちろん、私の例では 'length'が見当たりませんでした。コピー&ペーストで誤って削除しました。 – Kapep

関連する問題