Попытка очистить некоторые поля с помощью 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);
}
Другие вопросы по тегам