【问题标题】:Getting multiple elements: only return the last one获取多个元素:只返回最后一个
【发布时间】:2013-11-18 18:07:17
【问题描述】:

我试图通过类名和元素名称通过函数获取多个元素(输入),但在这两种情况下都只返回最后一个元素。即使我点击了前两个复选框,警报也是“再见是假的”。当我单击它时,这应该显示为“真实”元素,但不会发生。

这是 HTML:

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
   <input type="checkbox" name="inPut" value="hi" class="greeting" /> Hi!!
  </br>
  <input type="checkbox" name="inPut" value="good" class="greeting" /> Good Morning!!
  </br>
  <input type="checkbox" name="inPut" value="bye" class="greeting" /> Bye!!
</body>
</html>

我尝试使用 classNAME 获取它们:

var inNer = document.getElementsByClassName('greeting');


    for (var i = 0; i < inNer.length; i++){

        prueba = inNer[i];
        var test = prueba.onclick = showIn;

      }


    function showIn(){

      var rex = prueba;
      alert('\''+rex.value+'\'' + ' es ' + rex.checked);
    }

我尝试通过名称获取元素:

var inName = document.box.inPut;


for (var i = 0; i < inName.length; i++){

  var test = inName[i];
  var call = test.onclick = showIn;
}

function showIn(){

  var outPut = test;
  alert(outPut.value + ' is ' + outPut.checked);

}

【问题讨论】:

    标签: javascript html forms get


    【解决方案1】:

    您的showIn 函数不正确。无需再次分配prueba。应该是:

    function showIn() {
      alert('\'' + this.value + '\'' + ' es ' + this.checked);
    }
    

    Fiddle

    【讨论】:

      【解决方案2】:
      var inNer = document.getElementsByClassName('greeting');
      for(var i=0; i<inNer.length; i++){
         inNer[i].onclick = showIn;
      }
      function showIn(){
         alert(this.value +" es "+ this.checked);
      }
      

      顺便说一句,&lt;/br&gt; 应该是&lt;br&gt; || &lt;br /&gt; || &lt;br/&gt; 不是&lt;/br&gt;

      【讨论】:

        猜你喜欢
        • 2015-04-29
        • 1970-01-01
        • 1970-01-01
        • 2013-04-30
        • 2023-03-17
        • 2019-11-13
        • 2015-09-16
        • 2014-10-17
        • 1970-01-01
        相关资源
        最近更新 更多