javascript函数生成的自动增量li标记

javascript函数生成的自动增量li标记,javascript,jquery,css,Javascript,Jquery,Css,我有一个解析xml文件的函数: <ul id="flussi"> <script type="text/javascript"> xmlDoc=loadXMLDoc("FLUSSI.xml") // Path to the XML file; var M = xmlDoc.getElementsByTagName("ROAD"); for (i=0;i<M.length;i++){ //document.write("<div id='id'

我有一个解析
xml
文件的函数:

<ul id="flussi">    
    <script type="text/javascript">
xmlDoc=loadXMLDoc("FLUSSI.xml") // Path to the XML file;
var M = xmlDoc.getElementsByTagName("ROAD");
for (i=0;i<M.length;i++){

//document.write("<div id='id'>"+xmlDoc.getElementsByTagName("ID")[i].childNodes[0].nodeValue+"</div>");
document.write("<li>"+xmlDoc.getElementsByTagName("NAME")[i].childNodes[0].nodeValue+ "</li>");
document.write("<li>"+xmlDoc.getElementsByTagName("SIM")[i].childNodes[0].nodeValue+ "</li>");
document.write("<li>"+xmlDoc.getElementsByTagName("REAL")[i].childNodes[0].nodeValue+ "</li>");
document.write("<li>"+ xmlDoc.getElementsByTagName("DIFF")[i].childNodes[0].nodeValue+"--"+"</li>");

}
 </script>
</ul>
等等

// Have this run after it's been written to the document
$(function() {
    $('ul li').each(function() {
        $(this).attr('id', ($(this).index() + 1));
    });
});
请注意,这可能也应该通过php、python或等效工具运行


否则,您可以简单地处理递增的值,并在Anubhab的答案中给出。

您不能这样做吗:

var count=0;
for (i=0;i<M.length;i++){

//document.write("<div id='id'>"+xmlDoc.getElementsByTagName("ID")[i].childNodes[0].nodeValue+"</div>");
document.write("<li id="+count+">"+xmlDoc.getElementsByTagName("NAME")[i].childNodes[0].nodeValue+ "</li>");
count++;
document.write("<li id="+count+">"+xmlDoc.getElementsByTagName("SIM")[i].childNodes[0].nodeValue+ "</li>");
count++;
//and so on
}
var计数=0;

对于(i=0;i只是为了记录,这就是我的意思:

JS

xmlDoc = loadXMLDoc("FLUSSI.xml") // Path to the XML file;
var M = xmlDoc.getElementsByTagName("ROAD");
var t_name = xmlDoc.getElementsByTagName("NAME");
var t_sim = xmlDoc.getElementsByTagName("SIM");
var t_real = xmlDoc.getElementsByTagName("REAL");
var t_diff = xmlDoc.getElementsByTagName("DIFF");


for (i = 0; i < M.length; i++) {

    //document.write("<div id='id'>"+xmlDoc.getElementsByTagName("ID")[i].childNodes[0].nodeValue+"</div>");
    document.write('<li class="name" id="name_' + i + '">' + t_name[i].childNodes[0].nodeValue + '</li>' 
        + '<li class="sim" id="sim_' + i + '>' + t_sim[i].childNodes[0].nodeValue + '</li>' 
        + '<li class="real" id="real_' + i + '>' + t_real[i].childNodes[0].nodeValue + '</li>' 
        + '<li class="diff" id="diff_' + i + '>' + t_diff[i].childNodes[0].nodeValue + '--</li>');

}
li.name{

}
li.sim{

}
li.real{

}
li.diff{

}
li#name_1{

}
/** Only with CSS3 compliant browsers **/
li.name:nth-child(2n)
{
    /** Only pair child, works with numbers to to target single element but faster to use ID then. **/
}

您是否愿意为我们这些不熟悉递增标记概念的人详细说明一下?我们可能仍然能够提供帮助。您是否正在寻找有序列表(
  • 列表项
  • )?@DavidHedlund,我编辑了answer@MartinBean,我想从javascript函数中获取自动递增的“
  • ”标记,以便编辑它们的一些css属性:)操作DOM越少越好:)将其放入单个
    文档中。编写
    并存储
    xmlDoc.getElementsByTagName(…)
    值。更快更强!至于您的自动增量,您可以执行
    document.write('
  • …)谢谢你的回答,但是我从@Anubhab中选择了一个更快的解决方案:)但这通常是一个更好的解决方案:)谢谢,这就是我要找的对不起,先生,如果我想在“+count+”之前加上一个名字,我该怎么办?编辑:解决了,我在语法上遇到了一个问题:)
    xmlDoc = loadXMLDoc("FLUSSI.xml") // Path to the XML file;
    var M = xmlDoc.getElementsByTagName("ROAD");
    var t_name = xmlDoc.getElementsByTagName("NAME");
    var t_sim = xmlDoc.getElementsByTagName("SIM");
    var t_real = xmlDoc.getElementsByTagName("REAL");
    var t_diff = xmlDoc.getElementsByTagName("DIFF");
    
    
    for (i = 0; i < M.length; i++) {
    
        //document.write("<div id='id'>"+xmlDoc.getElementsByTagName("ID")[i].childNodes[0].nodeValue+"</div>");
        document.write('<li class="name" id="name_' + i + '">' + t_name[i].childNodes[0].nodeValue + '</li>' 
            + '<li class="sim" id="sim_' + i + '>' + t_sim[i].childNodes[0].nodeValue + '</li>' 
            + '<li class="real" id="real_' + i + '>' + t_real[i].childNodes[0].nodeValue + '</li>' 
            + '<li class="diff" id="diff_' + i + '>' + t_diff[i].childNodes[0].nodeValue + '--</li>');
    
    }
    
    li.name{
    
    }
    li.sim{
    
    }
    li.real{
    
    }
    li.diff{
    
    }
    li#name_1{
    
    }
    /** Only with CSS3 compliant browsers **/
    li.name:nth-child(2n)
    {
        /** Only pair child, works with numbers to to target single element but faster to use ID then. **/
    }