How do I recursively assign each item in a list an unique ID?

ⅰ亾dé卋堺 提交于 2019-12-08 13:43:07

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!