简体   繁体   English

Javascript-从HTML获取动态名称

[英]Javascript - Getting dynamic name from HTML

I need to figure out how to make my javascript take in the select names dynamically. 我需要弄清楚如何使我的JavaScript动态输入选择名称。 How should I go about this? 我应该怎么做?

I've tried Tried var i = getElementsByName() and then if (i == "x) ... else .... with no results 我已经尝试过var i = getElementsByName(),然后如果(i ==“ x)... else ....没有结果

My Javascript: 我的Javascript:

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

My Html: 我的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>

The simplest solution would be with jQuery http://jquery.com 最简单的解决方案是使用jQuery http://jquery.com

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

Also with new browser APIs using pure Javascript: 同样,使用纯Javascript的新浏览器API:

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

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

So you need that x to be 'dynamic'. 因此,您需要让x保持“动态”。 I don't really understand what you mean with that but I guess you want to specify another name every time you call the function. 我不太了解您的意思,但是我想您想在每次调用该函数时指定另一个名称。 That's what function parameters are for. 这就是功能参数的用途。
Change your function to this: 将功能更改为此:

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

Now you can call the function with: 现在,您可以使用以下命令调用该函数:

displayResult("x");

I think that what you are actually looking for is this: 我认为您真正要寻找的是:

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

this code will produce an array names containing the names of selects presented on the page 此代码将产生一个数组names其中包含页面上显示的选择名称

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM