0

我正在尝试显示来自外部 .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”的数据,有没有办法让网址http://www.server.com/data.jsp?id=innertag2正确调整标记名?

谢谢,任何帮助将不胜感激。

4

2 回答 2

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;
            }
        }
    }
}
于 2011-01-27T22:31:02.247 回答
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
于 2011-01-27T22:36:37.143 回答