问题
I have the following list.
<ol>
<li>
<a href="client.htm">Client</a>
<ol>
<li><a href="client/nokia.htm">Nokia</a></li>
<li><a href="client/microsoft.htm">Microsoft</a></li>
<li><a href="client/sony.htm">Sony</a></li>
<li><a href="client/samsung.htm">Samsung</a></li>
</ol>
</li>
<li><a href="contact.htm">Contact</a></li>
</ol>
That I would like to transform into something similar to this.
<ol>
<li>
<a id="sitemap-item-1" href="client.htm">Client</a>
<ol>
<li><a id="sitemap-item-1-1" href="client/nokia.htm">Nokia</a></li>
<li><a id="sitemap-item-1-2" href="client/microsoft.htm">Microsoft</a></li>
<li><a id="sitemap-item-1-3" href="client/sony.htm">Sony</a></li>
<li><a id="sitemap-item-1-4" href="client/samsung.htm">Samsung</a></li>
</ol>
</li>
<li><a id="sitemap-item-2" href="contact.htm">Contact</a></li>
</ol>
Note, that the ID is based on an item's level within a list.
回答1:
something like this works:
$(document).ready(function(){
$("body > ol > li").each(function(idx){
$(this).find("> a").attr("id","sitemap-item-"+ ++idx);
$(this).find("> ol > li > a").each(function(idx2){
$(this).attr("id","sitemap-item-"+ idx + "-" + ++idx2);
});
});
});
http://jsfiddle.net/UvQmC/12/
来源:https://stackoverflow.com/questions/10172407/how-do-i-recursively-assign-each-item-in-a-list-an-unique-id