2012-04-26 36 views
0

我試圖創建一個HTML表格,其中包含使用JavaScript的XML文件的鏈接。該HTML tbale工作正常,但是當涉及到鏈接創建,似乎鏈接只有鏈接中我的字符串的第一個字。如果我做一個警報(字符串)命令我得到完整的字符串,但只要我嘗試做一個HTML LINK它只會添加第一個單詞。無法從XML列表中正確地創建鏈接

實施例:

基地鏈路: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> 
+0

你試過[是encodeURI(http://es5.github.com/#x15.1.3.3)爲整個整個URL或[encodeURICoomponent(HTTP: //es5.github.com/#x15.1.3.4)適當的部分? – RobG 2012-04-26 02:59:08

回答

0

你不能在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>"); 
+0

感謝你的救星 – user1357605 2012-04-26 19:56:04