我有一個這樣的HTML:jQuery的:選擇元素,並在它們之間迭代,直到某元素出現
<h2>H2 A</h2>
<h3>H3 A</h3>
<h3>H3 B</h3>
<h2>H2 B</h2>
<h3>H3 C</h3>
<h3>H3 D</h3>
我想遍歷(例如:)一組H2S的:找到所有H3 在下的H2;然後轉到下一個H2並執行相同的操作。但是我想對所有標題遞歸地(大概是)遞歸地和(即H +電平和H +電平+1; h3和h4,h4和h5,等等)。但到目前爲止我還沒有成功。
我的代碼是下面,我想用nextUntil將使工作,但它使每個迭代所有的元素:
function renderHeadingStructure(level, parent)
{
$('h'+level)/*.nextUntil('h'+level).*/each(function(i,el){
// Copy item name to parent in list - now it is missing creating of an UL :-/
li = document.createElement('li');
li.innerHTML = el.innerHTML;
parent.appendChild(li);
// Here would be handy something like:
// -> If crossed over H+level-1 (while going trough H+level)
// -> then create an ul, recurse and then break
if(level<6)
renderHeadingStructure(level+1,li);
});
}
產生的結構應該是這樣的:
<ul>
<li><a>H2 A</a>
<ul>
<li><a>H3 A</a></li>
<li><a>H3 B</a></li>
</ul>
</li>
<li><a>H2 B</a>
<ul>
<li><a>H3 C</a></li>
<li><a>H3 D</a></li>
</ul>
</li>
</ul>
以上代碼的結果是:第一個H2和所有四個H3,然後是第二個H2和全部四個H3 - 都等於1。
有人可以給我一個建議或幫助解決問題嗎? 謝謝你親切
這將是一個很好的面試問題 – 2011-12-22 00:24:39