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 に答える