获取所有父ID <ul>到数组

时间:2015-12-18 07:29:28

标签: javascript jquery html arrays parent

我的HTML代码:

<form>
<ol>
  <li id="1" name="grandparent">Grand Parent
    <ol>
      <li id="2" name="parent">Parent
         <ol>
           <li id="3" name="child">Child
         </ol>
      </li>
      <li id="4" name="parent2">Parent2
         <ol>
           <li id="5" name="child2">Child2
         </ol>
      </li>
    </ol>
  </li>
  <li id="6" name="grandparent2">Grand Parent 2
  </li>
</ol>
</form>

在提交表单上,我希望得到这样的所有父母:

[1] =&gt; &#39;祖父母&#39;,父母

[2 //li id] =&gt; &#39; parent&#39;,Parent =&gt; [1 //id of parent]

[3] =&gt; &#39; child&#39;,Parent =&gt; [2]

[4] =&gt; &#39; parent2&#39;,Parent =&gt; [1]

[5] =&gt; &#39; child2&#39;,Parent =&gt; [4]

[6] =&gt; &#39; grandparent2&#39;,家长

  

请帮我在javascript上获取所有父ID。

1 个答案:

答案 0 :(得分:1)

你期待这样的事情。我使用递归函数,因此你可以很容易地扩展它,

sed -i '/  -skip_delivery \/a \
+arguments' /root/options.conf
function getJson()
{
	var finalJson = getChildLis(new Array(),$("#myform").children("ol"),"");
	alert(JSON.stringify(finalJson));
}


function getChildLis(jsonArray,currentEle,parent)
{
	$.each($(currentEle).children("li"),function(key,val){
		var curName = $(val).attr("name");
		var curId = $(val).attr("id");
		var jsonO = {};		
		jsonO[curId] = curName;
		jsonO.parent = parent;		
		jsonArray.push(jsonO);
		getChildLis(jsonArray,$(val).find("ol"),curId);
	});
	return jsonArray;
}