-2

配列を介した反復処理でこの問題が発生しました。1 つの HTML ページに同じ x 数のフォームを持つ x 数のボタンがあります。各フォームに関連付けられているのは、フォーム上のランダムな数のチェックボックスです。ボタン selectControl は、各フォームのすべてのチェックボックスを選択/選択解除します。ボタンとフォームの名前は、要素を使用してその番号をインクリメントすることによって作成されます。このようにして、一意の ID を保持しながらこれらの要素をループできるようにしたいと考えています。
「SyntaxError: missing ; before statement」というエラーが表示されますが、構文に関係するものが見つからなかったので、これは配列の反復に関するものである必要があると思います。

以下は私のコードです:

var run_times = 2;     //declare how many buttons 
//function to look for checkboxes in each form
//receive the array of selectControl buttons from window.onload = function() 
function Check(frm){
  //get all checkboxes in an array
  var checkBoxes = frm.elements['chbx'];
  //run this for every form as specified in run_times var
  for (r = 0; r < run_times; r++) {
    //and for each checkbox found
    for (i = 0; i < checkBoxes.length; i++){
      checkBoxes[i].checked = (selectControl[r].innerHTML == "Select All") ? 'checked' : '';
    }
    //set the inner html for each button
    selectControl[r].innerHTML = (selectControl[r].innerHTML == "Select All") ? "Unselect All" : 'Select All';
  };
};

window.onload = function() 
{
  //loop
  for (r = 0; r < run_times; r++) 
  {
    //get a variable for each button
    var selectControl[r] = document.getElementById("selectControl"+[r]);
    //pass each of these variables to function above when button clicked
    selectControl[r].onClick= function(){ Check(document.myform[r])};
  };
};

/*window.onload = function(){

  var selectControl = document.getElementById("selectControl");
  selectControl.onclick = function(){Check(document.myform)};
};

これは私のhtmlです

<form name="myform1" method="" action="">
          <ul class="list-group" style="list-style:none">
            <li class="reco_item"><input name="chbx" class="reco_inp_box"type="checkbox"><p>one</p></li>
            <li class="reco_item"><input name="chbx" class="reco_inp_box"type="checkbox"><p>one</p></li>
            <li class="reco_item"><input name="chbx" class="reco_inp_box"type="checkbox"><p>one</p></li>
            <li class="reco_item"><input name="chbx" class="reco_inp_box"type="checkbox"><p>one</p></li>
            <li class="reco_item"><input name="chbx" class="reco_inp_box"type="checkbox"><p>one</p></li>
            <li class="reco_item"><input name="chbx" class="reco_inp_box"type="checkbox"><p>one</p></li>
            <li class="reco_item"><input name="chbx" class="reco_inp_box"type="checkbox"><p>one</p></li>
            <li class="reco_item"><input name="chbx" class="reco_inp_box"type="checkbox"><p>one</p></li>
          </ul>
        </form>

 <button id="selectControl1" name="sr_btn" class="btn btn-info reco_btn pull-right">Select all</button>              
      </div>
4

1 に答える 1

0
var selectControl[r] = document.getElementById("selectControl"+[r]);

あなたが意味したのは:

selectControl[r] = document.getElementById("selectControl" + r);

また、次のように宣言する必要があります。

var selectControl = [ ];

コードの上部近く (関数宣言の前)。

最後に、コードの最後に終了コメント マークを付ける必要があります。

于 2013-09-16T15:43:49.203 に答える