4

フォームにいくつかのラジオ ボタンがあり、すべて 3 つにグループ化されています。それらがクリックされると、それらに対して JS 関数を実行する必要があります。この関数では、押されたボタンのグループ内のラジオ ボタンをループします (つまり、グループが 'abc_name' id use と呼ばれる場合for (var i = 0; i < form.abc_name.length; i++){ })。

構築されたグループ名を使用して、ラジオ ボタンのグループを同じように動作させる方法があるかどうか疑問に思っています。たとえば、「xyz」を関数に渡した場合、コードをfor (var i = 0; i < form.xyz_name.length; i++){ }. ありがとう。

4

3 に答える 3

3

どちらの場合でも実際に使用する必要があります。getElementsByName()

for (var els = document.getElementsByName(xyz + '_name'), i=0; i<els.length;i++) {
    // something on els[i]
}

あなたが持っているものの直接の同等物は次のようになりますが:

for (var els = form.elements[xyz + "_name"];, i=0; i<els.length;i++) {
    // something on els[i]
}
于 2012-05-04T14:43:33.393 に答える
3

角かっこ表記を使用します。

function loopDeLoop (xyz) {
    var elems = form.elements[xyz + "_name"],
        len = elems.length,
        i;
    for (i=0;i<len;i++){
        console.log(elems[i];
    }
}
于 2012-05-04T14:43:36.787 に答える
0

[]プロパティ構文を使用します。

function loop(s) {
   s += '_name';
   var inputs = form[s];

   for (var i = 0; i < inputs.length; ++i) {
       ...
   }
}

これは、プロパティ キーが変数の場合に必要です。a.b構文bは、「リテラル」の場合にのみ機能します。

于 2012-05-04T14:43:04.610 に答える