0

我需要弄清楚如何让我的 javascript 动态地接受选择的名称。我该怎么办?

我试过尝试 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

最简单的解决方案是使用 jQuery http://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 回答