在无法正常使用的类上使用addEventListener

Wil*_*ent 1 javascript javascript-events

我想用我的脚本转换addEventListenergetElementByIdvar一个getElementByClassName但这不起作用。如何解决?

看我的代码

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);
Run Code Online (Sandbox Code Playgroud)

HTML:

<input type="number" class="myClass">
Run Code Online (Sandbox Code Playgroud)

如果我找到带有div的div,则此脚本可以完美运行ID,但不能使用CLASS

epa*_*llo 5

没有getElementByClassName。有一个getElement ByClassName返回一个集合。如果只有一个,则选择第一个索引。

var input = document.getElementsByClassName('myClass')[0];
Run Code Online (Sandbox Code Playgroud)

其他选项是querySelector

var input = document.querySelector('.myClass');
Run Code Online (Sandbox Code Playgroud)

我的猜测是,您没有一个元素而是多个元素,而不需要遍历集合。

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); } );
}
Run Code Online (Sandbox Code Playgroud)