我有这个函数解析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>
在html文件中写入如下值的列表:
<li> Ponte_Nuovo_sx</li>
<li>87</li>
<li>72</li>
<li>15--</li>
现在我想自动增加li
标签,但我仍然试图找到解决方案
如果li
标记不是由函数生成的,那么如果它们是静态的,我可以递增li
标记。
我想获得的是(如果可能的话):
<li id=1> Ponte_Nuovo_sx </li>
<ii id=2> 87 </li>
等等。
答案 0 :(得分:2)
// 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的答案中给出。
答案 1 :(得分:0)
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
}
答案 2 :(得分:0)
只是为了记录,这就是我的意思:
<强> 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>');
}
<强> CSS 强>
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. **/
}