获取多个元素:仅返回最后一个元素

时间:2013-11-18 18:07:17

标签: javascript html forms get

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

这是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);

}

2 个答案:

答案 0 :(得分:0)

您的showIn功能不正确。无需再次分配prueba。它应该是:

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

Fiddle

答案 1 :(得分:0)

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);
}

顺便说一下,</br>应为<br> || <br /> || <br/>而不是</br>