0

JavaScriptに選択した名前を動的に取り込む方法を理解する必要があります。これについてはどうすればよいですか?

Tried var i = getElementsByName()を試してみましたが、if(i == "x)...else....結果がありません

私のJavascript:

function displayResult()
{
   var m=document.getElementsByName("x");
   document.getElementById('divid').innerHTML = m[0].value;
}                                   

私のHTML:

  <form>
       <select name = x>
         <option> a </option>
         <option> b </option>
         <option> c </option>
       </select>
       <select name = y>
         <option> 2 </option>
         <option> 3 </option>
         <option> 4 </option>
       </select>
     </form>
4

3 に答える 3

2

最も簡単な解決策は、jQueryhttp ://jquery.comを使用することです。

var myx = "x";
var elems = $("select[name=" + myx + "]");

また、純粋なJavascriptを使用する新しいブラウザAPIを使用する場合:

var elems = document.querySelectorAll("select[name=x]")

https://developer.mozilla.org/en-US/docs/DOM/Document.querySelectorAll

于 2013-02-08T18:20:58.447 に答える
1

したがって、そのxは「動的」である必要があります。それが何を意味するのかはよくわかりませんが、関数を呼び出すたびに別の名前を指定したいと思います。それが関数パラメータの目的です。
関数を次のように変更します。

function displayResult(name)
{
   var m=document.getElementsByName(name);
   document.getElementById('divid').innerHTML = m[0].value;
}

これで、次のコマンドで関数を呼び出すことができます。

displayResult("x");
于 2013-02-08T18:28:42.780 に答える
0

私はあなたが実際に探しているのはこれだと思います:

var nodes = document.getElementsByTagName('select');
var names = new Array();
for(i=0,c=nodes.length;i<c;i++){
    names.push(nodes[i].name);
}

このコードはnames、ページに表示される選択の名前を含む配列を生成します

于 2013-02-08T18:19:33.850 に答える