GetElementById работает, но getElementsByClassName не работает

Он работает с querySelector, но у меня есть 3 поля ввода чисел. Работает только на первом. Второй и третий не работают.

const elX = document.querySelector('.sayim');
    const elY = document.querySelector('.tm-qty');

function limit() {
    elY.value=Math.min(Math.round(elX.value),elY.value);
}

elX.onchange=limit;
elY.onchange=limit;

Первый HTML

<input class = "sayim" type = "number" value = "0" step = "1" min = "0" max = "999" name = "wc_bookings_field_persons_2855" id = "wc_bookings_field_persons_2855">

И второй HTML

<input class = "tm-qty" type = "number" step = "any" min = "0" name = "tmcp_checkbox_0_1_quantity" value = "0" title = "Qty" size = "4">
getElementsByClassName is not working Что из того, что вы пробовали, не работает? Что за HTML?
CertainPerformance 24.10.2018 11:13

Вы не показали нам свой нерабочий код, но я предполагаю, что проблема в том, что getElementById возвращает единственный элемент, тогда как getElementsByClassName возвращает коллекцию, которую вам нужно просмотреть или получить доступ по индексу.

Rory McCrossan 24.10.2018 11:14
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
2
63
1

Ответы 1

Класс непонятно. Чтобы получить первый с именем класса, используйте [0]

const elX = document.querySelector('.sayim')[0];
const elY = document.querySelector('.tm-qty')[0];

function limit() {
    elY.value=Math.min(Math.round(elX.value),elY.value);
}

elX.onchange=limit;
elY.onchange=limit;

У меня есть 3 поля ввода, он работает с первым полем ввода. Второй и третий не работают. (Если я добавлю [0], консольная ошибка: невозможно установить свойство onchange на undefined.) Спасибо за ответ.

Tuna Zenginbaş 24.10.2018 11:41

Другие вопросы по теме