3入力ボックスのCSSクラスが.rgb
となっています。この.rgb
クラスには、IDが#rgb
,#rgb2
、#rgb3
の3つの入力ボックスがあります。クラスの入力イベントリスナーが呼び出されない
3つの入力ボックスのいずれかが.addEventListener
を使用して入力されたテキストをキャプチャしようとしましたが、クラス名で要素を選択すると機能しません。何innerHTMLのは
を追加されていない。この例のための私の縮小さコードです:それは.rgb
クラスの下に3つのすべての入力ボックスに入力をリッスンするよう
document.getElementsByClassName('rgb').addEventListener("input", function() {
// Stores the r, g, b values
var r = document.getElementById('rgb').value;
var g = document.getElementById('rgb2').value;
var b = document.getElementById('rgb3').value;
document.getElementById('rgb-output').innerHTML = 'RGB: rgb(' + r + ', ' + g + ', ' + b + ')';
document.getElementById('hex-output').innerHTML = 'HEX: ' + rgbToHEX(r, g, b).toUpperCase();
}, false);
どのようにコードを変更することができますが?
デバッグコンソールを開くと、エラーが表示されます。 'addEventListener'は要素のメソッドです。 'getElementsByClassName'は' NodeList'を返します(配列のように考える)。 –
'document.getElementsByClassName'で' addEventListener'を使用することはできません。DOM要素の配列を返します(それらのループ)+ 'input'はあなたが探しているイベントではなく' change'または 'blur'です – topheman