开发者

Can a javascript attribute value be determined by a manual url parameter?

I am trying to display data from an external .jsp file, which is set up something like this:

<tag>
  <innertag1 id="1">
  <innertag1 id="2">
</tag>
<tag>
  <innertag2 id="3">
  <innertag2 id="4">
</tag>

To display only information from only one particular "innertag" tag, I'm currently using:

NodeLis开发者_如何学Got labs = XMLInfo.getElementsByTagName("innertag1");

I'd like to be able to isolate any particular tag with ease. Theoretically, I could create many individual pages and simply change the values to "innertag2," "innertag3," etc., but this is obviously a bit impractical.

Is there a way to determine the value via a URL parameter? For instance, if I wanted to only display data from "innertag2," is there a way that the url http://www.server.com/data.jsp?id=innertag2 would adjust the tagname properly?

Thank you, any help would be much appreciated.


You can parse document.location.href and extract parameters from there. This is from an old HTML file where I used this technique (not sure if it's compatible on all browsers, however).

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;
            }
        }
    }
}


Not sure if this is what you're looking for, but you can access parameters from the url using location.search.

6502's answer is almost good enough, it's not url decoding parameters. The function below is a bit more polished (descriptive variable names, no global variables)

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;
}

Then you could do

var params = getUrlParams();
XMLInfo.getElementsByTagName(params['id']); // or params.id
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜