javascript中的Repeat函数

javascript中的Repeat函数,javascript,function,Javascript,Function,你能告诉我如何从这4个函数中得到1个吗。因为它们都做一件事,只有一个参数一直在变化。 此外,我需要在函数每次运行时获取其值,并将其放入一个新变量中,以便在计算后可以使用 function getValue(age) { for (var i = 0; i < document.getElementsByName('age').length; i++) { if (document.getElementsByName('age')[i].checked)

你能告诉我如何从这4个函数中得到1个吗。因为它们都做一件事,只有一个参数一直在变化。 此外,我需要在函数每次运行时获取其值,并将其放入一个新变量中,以便在计算后可以使用

function getValue(age)
{
    for (var i = 0; i < document.getElementsByName('age').length; i++)
    {
        if (document.getElementsByName('age')[i].checked)
        {
            return document.getElementsByName('age')[i].value;
        }
    }
}


function getBmiValue()
{
    for (var i = 0; i < document.getElementsByName('bmi').length; i++)
    {
        if (document.getElementsByName('bmi')[i].checked)
        {
            return document.getElementsByName('bmi')[i].value;
        }
    }
}    

function getFamValue()
{
 for (var i = 0; i < document.getElementsByName('fam').length; i++)
 {
    if (document.getElementsByName('fam')[i].checked)
        {
            return document.getElementsByName('fam')[i].value;
        }
    }   
 }

function getDietValue()
{
 for (var i = 0; i < document.getElementsByName('diet').length; i++)
  {
      if (document.getElementsByName('diet')[i].checked)
       {
            return document.getElementsByName('diet')[i].value;
       }
    }     
}
函数getValue(年龄)
{
for(var i=0;i
函数getValueByElementName(元素名称)
{
for(var i=0;i
或者进行一点优化:

function getValueByElementName(element_name)
{
   var elements = document.getElementsByName(element_name);

   for (var i = 0; i < elements.length; i++)
   {
      if (elements[i].checked)
            return elements[i].value;
    }   
 }
函数getValueByElementName(元素名称) { var elements=document.getElementsByName(元素名称); 对于(var i=0;i
函数getValue(标记名)
{
对于(变量i=0;i

在此函数中将元素名称作为变量传递并调用它。

下面是一个可以执行的示例:

function getValue(key) {

// get this once, not on each loop iteration  
var elem = document.getElementsByName(key);

  // cache the length too, so not to calculate it on each loop iteration
  for (var i = 0, len = elem.length; i < len; i++) {

    if (elem[i].checked) {
      return elem[i].value; 
      // this will exit the function when it finds the FIRST one. 
      // Is that what you want?
    }
  }
}

// you can call above function like this:
getValue('age');
getValue('bmi');
getValue('fam');
getValue('diet');
函数getValue(键){
//获取一次,而不是每次循环迭代
var elem=document.getElementsByName(键);
//缓存长度,这样就不会在每次循环迭代中计算它
对于(变量i=0,len=elem.length;i
将元素名称作为参数传递给函数。您需要对语言语法有一个基本的了解,所以我建议您在进一步学习之前多学一点JavaScript。@plalx,谢谢。好主意。我已经更新了我的答案。
function getValue(tagname)
{
    for (var i = 0; i < document.getElementsByName(tagname).length; i++)
    {
        if (document.getElementsByName(tagname)[i].checked)
        {
            return document.getElementsByName(tagname)[i].value;
        }
    }
}
function getValue(key) {

// get this once, not on each loop iteration  
var elem = document.getElementsByName(key);

  // cache the length too, so not to calculate it on each loop iteration
  for (var i = 0, len = elem.length; i < len; i++) {

    if (elem[i].checked) {
      return elem[i].value; 
      // this will exit the function when it finds the FIRST one. 
      // Is that what you want?
    }
  }
}

// you can call above function like this:
getValue('age');
getValue('bmi');
getValue('fam');
getValue('diet');