无法让javascript从XML列表正确创建链接

Cant get javascript to create links correctly from XML list

本文关键字:创建 链接 列表 XML javascript      更新时间:2023-09-26

我试图使用javascript创建一个带有XML文件链接的HTML表。html tbale 工作正常,但在链接创建方面,链接似乎只有链接中我的字符串的第一个单词。如果我执行警报(字符串)命令,我会得到完整的字符串,但是一旦我尝试制作HTML链接,它只会添加第一个单词。

例:

基本链接:http://kat.ph/usearch/{搜索字段转到此处}XML 列表的字符串输出:"您好先生"

作为链接的实际输出(不带引号):"http://kat.ph/usearch/Hello"作为链接的预期输出(不带引号):"http://kat.ph/usearch/Hello 先生"

代码如下

  <script type="text/javascript">
                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","playlist.xml",false);
                xmlhttp.send();
                xmlDoc=xmlhttp.responseXML; 
                document.write("<table border='1'>");
                var x=xmlDoc.getElementsByTagName("void");
                for (i=0;i<x.length;i++)
                { 
                    document.write("<tr><td>");
                    document.write(x[i].getElementsByTagName("string")[0].childNodes[0].nodeValue);
                    document.write("</td><td>");
                    //alert(x[i].getElementsByTagName("string")[0].childNodes[0].nodeValue); just testing to see what i get here
                    // document.write("<a href=http://www.kat.ph/usearch/" + x[i].getElementsByTagName("string")[0].childNodes[0].nodeValue + ">"+"KAT.PH"+"</a>");
                    document.write("<a href='" + "http://www.kat.ph/usearch/" + x[i].getElementsByTagName("string")[0].childNodes[0].nodeValue + "'>" + "KAT.PH" + "</a>"); 
                    document.write("</td></tr>");  
                }
                document.write("</table>");
            </script>

URI (http://www.w3schools.com/jsref/jsref_encodeuri.asp) 中不能有空格。 您可以做的是对其进行编码:

var term = x[i].getElementsByTagName("string")[0].childNodes[0].nodeValue;
var uri = "http://www.kat.ph/usearch/" + term;
document.write("<a href='" + encodeURI(uri) + "'>" + "KAT.PH" + "</a>");