誰かがこの問題を解決する方法を知っていることを願っています。私は JavaScript と XML が初めてです。基本的に、製品のリストを含む xml ファイルがあり、html ページの ul li リストにデータを動的にロードできました。li 要素にはタイトルと画像があり、この li 要素をクリックできるようにする必要があります。特定の製品の残りのデータを新しいページ (または div) にロードします。「Uncaught ReferenceError: i is not defined」というメッセージが表示されます 製品のリストから特定の製品をクリックした後、正しい残りのデータをロードするにはどうすればよいですか。(私の説明が十分に明確であることを願っています)これが私のコードです。最初の関数はhtmlページにul liリストを生成し、displayPRInfo()関数はクリックされた製品のshowPrInfo divにデータをロードする必要があります.
私を助けてください、どんな助けも感謝します、読んでくれてありがとう。
function loadProducts() {
var liOpen=("<li onclick='displayPRInfo(" + i + ")'><p>");
var divOpen=("</p><div class='prod-sq-img'>");
var closingTags=("</div></li>");
var txt;
var image;
var title;
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;
}
}
function displayPRInfo(i)
{
title=(x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue);
euPriceRet=(x[i].getElementsByTagName("euror")[0].childNodes[0].nodeValue);
euPriceTrade=(x[i].getElementsByTagName("eurot")[0].childNodes[0].nodeValue);
euPriceSet=(x[i].getElementsByTagName("eset")[0].childNodes[0].nodeValue);
minimumQuantity=(x[i].getElementsByTagName("mqty")[0].childNodes[0].nodeValue);
description=(x[i].getElementsByTagName("desc")[0].childNodes[0].nodeValue);
prBigImg=(x[i].getElementsByTagName("pimgfile")[0].childNodes[0].nodeValue);
prInfo=title+"<br>"+euPriceRet+"<br>"+euPriceTrade+"<br> "+euPriceSet+"<br> "+minimumQuantity+"<br>"+description+"<br>"+ prBigImg ;
document.getElementById("showPrInfo").innerHTML=prInfo;
}