javascript 对不工作的类使用addEventListener

eiee3dmh  于 2023-02-02  发布在  Java
关注(0)|答案(2)|浏览(98)

我试图将我的脚本使用addEventListenervar上的getElementById转换为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);

超文本:

<input type="number" class="myClass">

如果我发现我的div使用ID,但不使用CLASS,则此脚本可以完美地工作。

fnx2tebb

fnx2tebb1#

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

var input = document.getElementsByClassName('myClass')[0];

其他选项是querySelector

var input = document.querySelector('.myClass');

我的猜测是,您不只是有一个元素,而是有多个元素,您需要在集合上循环。

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

lxkprmvk2#

var input = document.getElementById('id_name')

...此处addEventListener将起作用,因为“id”将是唯一的,但在“class”的情况下,可能会输入相同的值...
所以你必须选择你想要操作的元素...example ==〉

var input = document.getElementsByClassName('class_name')[0] // after this addEventListener will work.

希望这对你有帮助:)

相关问题