我尝试使用javascript创建一个包含来自XML文件的链接的HTML表。 html tbale工作正常,但是当涉及到链接创建时,链接似乎只有我的字符串中的第一个单词。如果我执行一个警报(String)命令,我会得到完整的字符串,但是当我尝试创建一个HTML LINK时,它只会添加第一个单词。
示例:
基本链接:http://kat.ph/usearch/ {搜索字段在这里} XML List的字符串输出:“Hello Sir”
实际输出为链接(不含引号):“http://kat.ph/usearch/Hello” 预期输出为链接(不含引号):“http://kat.ph/usearch/Hello Sir”
代码低于
<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 :(得分: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>");