通过类名和存储元素在变量中获取元素

时间:2015-10-09 21:50:03

标签: javascript html

我试图执行以下操作:

function() {
 var elements = document.getElementsByClassName('class');
 var length = elements.length;
 for (var i = 0; i < length; i++) {
  var element = elements[i];
  element.addEventListener('input', function() { return handleInputEvent(element); }, false);
 }
}
function handleInputEvent(element) {
 var value = element.value; // empty string
}

但是当我尝试获取元素的值时,即使我输入数字或字母,它也会以空字符串的形式返回。有什么想法吗?

html是一堆输入

<input type='text' class='class'/>
<input type='text' class='class'/>
<input type='text' class='class'/>

1 个答案:

答案 0 :(得分:2)

每次进行循环时,您都会重新定义element。当你在每个事件函数中使用元素时,这意味着函数将在函数执行时使用元素的值执行,因此element将始终引用最后一个值element,这将是是elements中的最后一个元素。因此,如果elements中的最后一个元素的值为'',那么输出将为''

但不仅如此,您实际上并没有返回element.value,而只是将其作为局部变量保留在处理函数中。你应该替换

var value = element.value;

使用

return element.value;

或者

console.log(element.value);