根据类名获取元素,并将元素存储在变量中

get elements by class name and store element in variable

本文关键字:元素 存储 变量 获取      更新时间:2023-09-26

我想做以下事情:

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'/>

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

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

var value = element.value;

return element.value;

console.log(element.value);