我正在尝试显示来自外部.jsp文件的数据,该文件设置如下:
<tag>
<innertag1 id="1">
<innertag1 id="2">
</tag>
<tag>
<innertag2 id="3">
<innertag2 id="4">
</tag>
仅显示来自一个特定“innertag”标签的信息,我目前正在使用:
NodeList labs = XMLInfo.getElementsByTagName("innertag1");
我希望能够轻松地隔离任何特定标签。从理论上讲,我可以创建许多单独的页面,只需将值更改为“innertag2”,“innertag3”等,但这显然有点不切实际。
有没有办法通过URL参数确定值?例如,如果我只想显示“innertag2”中的数据,那么url http://www.server.com/data.jsp?id=innertag2 是否会调整标记名正常?
谢谢,非常感谢任何帮助。
答案 0 :(得分:2)
您可以解析document.location.href
并从中提取参数。这是来自我使用此技术的旧HTML文件(不确定它是否与所有浏览器兼容)。
var args = {};
function parseArgs()
{
var aa = document.location.href;
if (aa.indexOf("?") != -1)
{
aa = aa.split("?")[1].split("&");
for (var i=0; i<aa.length; i++)
{
var s = aa[i];
var j = s.indexOf("=");
if (j != -1)
{
var name = s.substr(0, j);
var value = s.substr(j + 1);
args[name] = value;
}
}
}
}
答案 1 :(得分:1)
不确定这是否是您要查找的内容,但您可以使用location.search
从网址访问参数。
6502的答案几乎已经足够好了,它不是url解码参数。下面的函数更加精确(描述性变量名称,没有全局变量)
function getUrlParams() {
var paramMap = {};
if (location.search.length == 0) {
return paramMap;
}
var parts = location.search.substring(1).split("&");
for (var i = 0; i < parts.length; i ++) {
var component = parts[i].split("=");
paramMap [decodeURIComponent(component[0])] = decodeURIComponent(component[1]);
}
return paramMap;
}
然后你可以做
var params = getUrlParams();
XMLInfo.getElementsByTagName(params['id']); // or params.id