Попытка очистить некоторые поля с помощью JS, выбрав элементы с одинаковым идентификатором, зависание perl
Я пытаюсь очистить некоторые (10 из 50) полей, выбрав элементы по их общему идентификатору. Проблема в том, что я могу выбрать только по одному с помощью getElementById()
Вот jsFiddle, демонстрирующий захват одного элемента. jsFiddle
function toggleBankCount() {
secBankFields = document.getElementById('2ndBankFields');
secBankFields.value = '';
}
Я вполне уверен, что могу делать то, что хочу, с getElementsByName(), который возвращает массив элементов. Однако я использую Perl, и имена элементов должны отличаться, чтобы% fdat работал правильно при отправке. Вы можете мне помочь?
2 ответа
Вот как вы можете это сделать:
toggleBankCount = function () {
secBankFields = document.getElementsByTagName('input');
for (var i = 0; i < secBankFields.length; ++i) {
if(secBankFields[i].id === '2ndBankFields')
secBankFields[i].value = '';
}
}
хотя идентификаторы должны быть уникальными, рассмотрите возможность использования классов. Кроме того, классы и идентификаторы не должны начинаться с цифры.
Проверьте это: JSFiddle
Есть несколько функций Javascript, которые должны вам помочь.
Получить элемент по атрибуту ID
Идентификатор должен быть уникальным.
var elm = document.getElementById("some_id");
Получить элементы по имени тега
// get all div elements
var elms = document.getElementsByTagName("div");
Получить элемент по атрибуту Class
// get all elements with class .some_class
var elms = document.getElementsByClassName("some_class");
Получить элемент по имени атрибута
// get all elements with attribute name some_name
var elms = document.getElementsByName("some_name");
Получить элемент с помощью селектора CSS
var elms = document.querySelectorAll("div.box, span.title");
for (var i = 0; i < elms.length; i++) {
var elm = elms[i];
console.log(elm);
}