[英]Use addEventListener on a class not working
I am trying to convert my script using addEventListener
with getElementById
on a var
for a getElementByClassName
but this doesn't work.我正在尝试在
getElementByClassName
的var
上使用addEventListener
和getElementById
转换我的脚本,但这不起作用。 How to fix it?如何解决?
See my code看我的代码
Javascript: Javascript:
var input = document.getElementByClassName('myClass');
_slider.noUiSlider.on('update', function( values, handle ) {
var value = values[handle];
if ( handle ) {
input.value = Math.round(value);
});
input.addEventListener('change', function(){
_slider.noUiSlider.set([null, this.value]);
}, false);
HTML: HTML:
<input type="number" class="myClass">
This script work perfectly if I find my div with an ID
, but not work with a CLASS
.如果我发现我的 div 有一个
ID
,但这个脚本不能与CLASS
一起使用,这个脚本就可以完美地工作。
There is no getElementByClassName. 没有getElementByClassName。 There is getElement s ByClassName that returns a collection.
有一个getElement 的 ByClassName返回一个集合。 If there is only one, than select the first index.
如果只有一个,则选择第一个索引。
var input = document.getElementsByClassName('myClass')[0];
Other option is querySelector 其他选项是querySelector
var input = document.querySelector('.myClass');
My guess is that you do not have just one element, but multiple, than you need to loop over the collection. 我的猜测是,您没有一个元素而是多个元素,而不需要遍历集合。
var inputs = document.getElementsByClassName('myClass');
//or
//var inputs = document.querySelectorAll('.myClass');
for( var i=0; i<inputs.length; i++){
inputs[i].addEventListener("click", function() { console.log(this); } );
}
var input = document.getElementById('id_name')...here addEventListener will work because "id" will unique but in case of "class" there might be same values entered...so you have to select which element you want to manipulate...example ==> var input = document.getElementsByClassName('class_name')[0]...after this addEventListener will work. var input = document.getElementById('id_name')...这里 addEventListener 将起作用,因为“id”将是唯一的,但在“class”的情况下,可能输入了相同的值...所以你必须 select 你想要哪个元素操纵...示例 ==> var input = document.getElementsByClassName('class_name')[0]...在此之后 addEventListener 将起作用。
Hope this might help you:)希望这对你有帮助:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.