0

我希望有人能够帮助我,我是 javaScript 和 XML 的新手,目前我正在尝试将产品的 xml 列表处理为我的 HTML 页面中的 ul 列表。我想从 xml 中获取所有产品并将它们显示为页面上的 li 元素。我已经设法编写代码来遍历 xml,但它只返回 xml 列表中的最后一个产品。我怎样才能得到所有的产品?欢迎任何建议。到目前为止我的代码:

    <script>
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","product.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML; 


var x=xmlDoc.getElementsByTagName("product");
for (i=0;i<x.length;i++)
  { 
  liOpen=("<li><p>");
  title=(x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue);
  divOpen=("</p><div class='prod-sq-img'>");
  image=(x[i].getElementsByTagName("imgfile")[0].childNodes[0].nodeValue);
  closingTags=("</div></li>");
  txt=  liOpen +  title + divOpen + image + closingTags ;
document.getElementById("ulList").innerHTML=txt;
  }


        </script>

感谢您的任何帮助

我的其他代码工作正常,它从列表中获取所有产品,但我需要将它传递到 DIV,有什么想法吗?

document.write("<ul class='prod-sq'>");
var x=xmlDoc.getElementsByTagName("product");
for (i=0;i<x.length;i++)
  { 
  document.write("<li><p>");
  document.write(x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue);
  document.write("</p><div class='prod-sq-img'>");
  document.write(x[i].getElementsByTagName("imgfile")[0].childNodes[0].nodeValue);
  }
document.write("</ul>");
4

2 回答 2

0

试试这个..

     var liOpen=("<li><p>");
      var divOpen=("</p><div class='prod-sq-img'>");  
      var closingTags=("</div></li>");
    var txt;
    var image;
    var title;
var y=xmlDoc.getElementsByTagName("product");
    for (j=0;j<y.length;j++)        {
    var x=xmlDoc.getElementsByTagName("product");
    for (i=0;i<x.length;i++)
      { 
      title=(x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue);
      image=(x[i].getElementsByTagName("imgfile")[0].childNodes[0].nodeValue);
      txt=  liOpen +  title + divOpen + image + closingTags ;
      }

    document.getElementById("ulList").innerHTML=txt;  }
于 2013-02-08T09:00:03.627 回答
0

我认为更改以下行将解决问题。

document.getElementById("ulList").innerHTML+=txt;
于 2013-02-08T09:21:50.173 回答