1

我正在尝试使用 javascript 从 XML 文件中加载数据,除了链接之外,它都可以 100% 正常工作。如果我替换createDetails(i,"LINK")a 字符串,它可以正常工作,只是我需要为 XML 中的每个条目更改它。但是使用createDetails(i,"LINK")in,链接是 undefined.html,并且 XML 中的链接实例只是打印到一边。

编码:

预加载xml:

var x;
x=xmlDoc.getElementsByTagName("HOME");

function createDetails(refNum,tagName){
    var tempProduct; 
    tempProduct = x[refNum].getElementsByTagName(tagName)[0].childNodes[0].nodeValue;
    document.write(tempProduct);
}

function createImage(refNum,tagName){
    var tempProduct; 
    tempProduct = x[refNum].getElementsByTagName(tagName)[0].childNodes[0].nodeValue;
    return(tempProduct);
}

打印它的脚本(损坏的东西):

<script>
     for(i = 0; i<x.length; i++){
         /*this line doesn't work*/ document.write("<a href=\"" + createDetails(i,"LINK") + ".html\">");
         document.write("<div class=\"homeLink\">");
         document.write("<div class=\"homeLinkPic\">");
         document.write("<img src=\"images/" + createImage(i,"PIC") + "\" width=\"200\" height=\"200\" alt=\"linkpic\" />"); 
         document.write("</div>");
         document.write("<div class=\"productDesc\">");
         createDetails(i,"DESC");
         document.write("</div>");
         document.write("</div>");
         document.write("</a>");
     }
</script>
4

2 回答 2

2

createDetails没有返回值。将其更改为:

function createDetails(refNum,tagName){
    var tempProduct; 
    tempProduct = x[refNum].getElementsByTagName(tagName)[0].childNodes[0].nodeValue;
    return tempProduct;
}
于 2013-08-30T08:48:50.723 回答
1

createDetails您必须从函数返回值。尝试

return tempProduct;

代替

document.write(tempProduct);

于 2013-08-30T08:50:03.463 回答