Перефразируя то, что вы просите: вы хотели бы собрать все входные данные на странице, которые соответствуют определенным критериям, а затем передать их в API.
Беглый взгляд на ссылку на API говорит, что makeTransliteratable будет принимать массив строк id или массив элементов. Так как мы не знаем идентификаторы элементов заранее, мы передадим массив элементов.
Итак, как получить массив элементов?
Я покажу вам два пути: трудный путь и легкий путь.
Во-первых, чтобы получить все текстовые области, мы можем сделать это с помощью API document.getElementsByTagName:
var textareas = document.getElementsByTagName("textarea");
Получить список входных данных немного сложнее, поскольку мы не хотим включать флажки, переключатели и т. Д. Мы можем различить их по атрибуту типа, поэтому давайте напишем быструю функцию, чтобы это различить:
function selectElementsWithTypeAttribute(elements, type)
{
var results = [];
for (var i = 0; i < elements.length; i++)
{
if (elements[i].getAttribute("type") == type)
{
results.push(elements[i]);
}
}
return results;
}
Теперь мы можем использовать эту функцию для получения входных данных, например:
var inputs = document.getElementsByTagName("input")
var textInputs = selectElementsWithTypeAttribute(textInputs, "text");
Теперь, когда у нас есть ссылки на все текстовые поля, мы можем объединить их в один массив и передать его в API:
var allTextBoxes = [].concat(textareas).concat(textInputs);
makeTransliteratable(allTextBoxes, /* options here */);
Итак, все это должно работать, но мы можем упростить это при разумном использовании библиотечных методов. Если бы вам нужно было скачать jQuery (google it), вы могли бы написать вместо этого более компактный код:
var allTextBoxes = $("input[type='text'], textarea").toArray();
makeTransliteratable(allTextBoxes, /* options here */);
При этом используется селектор CSS, чтобы найти все входные данные с атрибутом типа «текст» и все текстовые области. Есть удобный метод toArray, который помещает все входные данные в массив, готовый к передаче в makeTransliteratable.
Надеюсь, это помогло,
Douglas