2011-01-27 8 views
0

が、私はこのような何かを設定されている外部.jspファイルからのデータを表示しようとしています:javascript属性の値を手動のurlパラメータで指定できますか?

<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

を行うことができ、私は、これは同じようにjQueryのセレクタ – JCOC611

+0

とかなり簡単だろう推測しています実際の "id"値は識別子のように見えるはずです(数字で始めることはできません)。 – Pointy

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

私はいつもそれがwindow.locationと呼ばれていると聞いてきました。また、location.searchによって作業が節約されます。 –

1

ない、これはあなたが探しているものですが、location.searchを使用してURLからパラメータにアクセスできるかどうか確認してください。

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 
関連する問題