求めていることを言い換えると、特定の基準に一致するページ上のすべての入力をまとめて、API に渡したいとします。
API リファレンスをざっと見てみると、makeTransliteratable は ID 文字列の配列または要素の配列を受け入れると書かれています。事前に要素の ID がわからないため、要素の配列を渡します。
では、要素の配列を取得するにはどうすればよいでしょうか。
難しい方法と簡単な方法の 2 つの方法を紹介します。
まず、すべてのテキスト領域を取得するには、document.getElementsByTagName API を使用してそれを行うことができます。
var textareas = document.getElementsByTagName("textarea");
チェックボックスやラジオボタンなどを含めたくないため、入力のリストを取得するのは少し難しくなります。 type 属性で区別できるので、区別するための簡単な関数を書きましょう:
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");
すべてのテキスト ボックスへの参照を取得したので、それらを 1 つの配列に連結し、それを 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 セレクターを使用して、type 属性が「text」であるすべての入力と、すべてのテキストエリアを検索します。すべての入力を配列に入れ、makeTransliteratable に渡す準備ができている便利な toArray メソッドがあります。
これがお役に立てば幸いです、ダグラス