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. **/
}