###前提・実現したいこと
マインドマップをブラウザ上で作成できるサービスを作っています。
ライブラリを使ってマインドマップの各要素の追加や削除、編集は任せることができましたが、データベースへの保存・読み込みは自分でやる必要があります。
###解決したい問題
データベースから各要素を読み込んで反映させることはできましたが、保存ができていません。
具体的には下記のHTMLコードをJavascriptのコード欄にある形に仕上げたいです。
###該当のソースコード
html
1<ol> 2 <li>0-1</li> 3 <li>0-2</li> 4 <li>0-3 5 <ol> 6 <li>1-1</li> 7 <li>1-2</li> 8 <li>1-3 9 <ol> 10 <li>2-1</li> 11 <li>2-2</li> 12 </ol> 13 </li> 14 <li>1-4</li> 15 </ol> 16 </li> 17 <li>0-4</li> 18 <li>0-5</li> 19</ol>
↓
javascript
1[0-1,0-2,0-3,[1-1,1-2,1-3,[2-1,2-2],1-4],0-4,0-5]
リストはどこまでも深くなっていくため、単純なループではなく再帰的な関数を用意する必要があると思いますが、なかなかいいアイデアが思いつかず困っています。
###回答を参考に試してみた事
- yamato_hikawa様
まずは入れ子になっていない単純なリスト構造を配列化する仕組みを考えましょう。
以下のコードでできました。
html
1<ol> 2 <li class="node">0-1</li> 3 <li class="node">0-2</li> 4 <li class="node">0-3</li> 5</ol>
javascript
1var count = $(".node").length; 2var array = []; 3for(var i=0;i<count;i++){ 4 var tmp_data = $(".node").eq(i).text(); 5 array.push(tmp_data); 6} 7console.log(array); //["0-1", "0-2", "0-3"]
次は入れ子のリスト構造を配列化したいのですが何か良いアイデアはありますでしょうか?
私も考え中です。
回答5件
あなたの回答
tips
プレビュー