- ベストアンサー
HTMLでのID
<input type="checkbox" id="tohyokeka1" name="tohyokeka1" value="1"> <input type="checkbox" id="tohyokeka1" name="tohyokeka1" value="1"> <input type="checkbox" id="tohyokeka1" name="tohyokeka1" value="1"> という風にtohyokeka1というid="tohyokeka1"の配列を取得したいのですがどのように記述していいのかが分かりません。どなたか教えて頂けませんでしょうか? name="tohyokeka1" var formObj = document.getElementById("form"); var idObj = document.getElementById("tohyokeka1"); formObj.tohyokeka1.lengthや formObj.tohyokeka1[count]で、 name配列の数や配列が取得できるのですが、 idObjの配列の個数の取り方と配列の取得方法がわかりません。どなたかお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
単純にチェックボックスの一括処理ならいかの ようにやるとよいでしょう <form> <input type=button value="check" onclick=checkFunc("y",true)><br> <input type=button value="No-check" onclick=checkFunc("y",false)><br> <input type="checkbox" class="y"><br> <input type="checkbox" class="y"><br> <input type="checkbox" class="y"><br> <input type="checkbox" class="y"><br> </form> <script languag=javascript> function checkFunc(cn,flg){ var el=document.getElementsByTagName('*') for (var i=0;i<el.length;i++){ if(el[i].className==cn) el[i].checked=flg } } </script>
その他の回答 (3)
- Blaise
- ベストアンサー率33% (13/39)
質問でおっしゃっている意味がよくわかりません。 邪推ですが、用語の意味の理解が曖昧なまま、何かを言 おうとしても伝わりません。 まず、しっかりとした基本を身につけられることをアド バイスします。 「配列」というのがよくわかりませんが、単にidObjの 個数を知りたいのであれば、document.formName.length で十分ですよね。 それと、HTMLは省略せずきちんと書くようにしましょう。
- yambejp
- ベストアンサー率51% (3827/7415)
#1さんの補足です getElementsByClassはjavascriptの標準関数では ないですよね? ただサーチエンジンで探すと結構ヒットするので ユーザー関数として実装するとよいでしょう。 ただしnameもvalueも一緒のチェックボックスを 引っ張ってきて何かやくにたつのかはわかりません。 submitするならnameはtohyokeka1[]などのように 空配列にしておき、valueにはユニークな値を ふっておくと、使い勝手が良いのではないでしょうか?
idは、ページ内で必ずひとつでなければいけません。 その場合は、classを使って getElementsByClassを使えば、配列で結果を受け取れます。
お礼
IDは必ず一つなのですね。ありがとうございます。 そこで、教えて頂いたgetElementsByClassなのですが、使用例とかあれば教えて頂けないでしょうか? 初心者で調べてみたのですが分かりませんでした。 お願い致します。
お礼
ありがとうございます。 説明が足りませんでした。 "□"はチェックボックス □name="tohyokeka1" □name="tohyokeka1" □name="tohyokeka2" □name="tohyokeka2"□name="tohyokeka2" □name="tohyokeka3" ・ ・ ・ という風にチェックボックスが変動して、一括でチェックを付ける機能を追加したいのですが,nameが変動してname配列の取り方が分かりませんでした。上記の場合でいきますと何か良い方法ありませんか?