Javascript - 从HTML获取动态名称

时间:2013-02-08 18:16:18

标签: javascript html

我需要弄清楚如何使我的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>

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

所以你需要x才能'动态'。我真的不明白你的意思,但我想你每次调用这个函数都要指定另一个名字。这就是函数参数的用途。
将您的功能更改为:

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

现在您可以使用以下方法调用该函数:

displayResult("x");

答案 2 :(得分: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,其中包含页面上显示的选项名称