1

私はこのような形をしています

<FORM>
    <INPUT TYPE='hidden' NAME='search0' VALUE='a'> 
    <INPUT TYPE='hidden' NAME='search1' VALUE='b'>
    ... etc 
    <INPUT TYPE='hidden' NAME='search100' VALUE='abc'>
</FORM> 

私のjavascriptでは、次の行に沿って何かをしたいと思います:

 for (i=0;i<=100;i++) { 
     document.forms[0].search+i+.value = '';
 }

明らかに、これは有効な構文ではありません。100 個の非表示の入力をすべて取得し、それらの値をすべて空に変更する方法がわかりません。どんな助けでも大歓迎です!

4

2 に答える 2

3

.0は有効な構文ではないことに注意してください。したがって、その[0]ような括弧内に任意の式 (数字、文字列など) を入れることができるため、使用します。実際、式に適用できるため、+内部で演算子を使用することもできます。+これで問題が解決します:

document.forms[0]["search" + i].value = '';

["forms"]などの代わりに使用することもできます.forms。基本的に、.表記は表記のサブセットにすぎません[]

于 2012-09-27T20:29:40.403 に答える
0

「ほとんどではあるが実際にはそうではない」jQueryは、次のようになります。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  /* all input that has a name that starts with search */
  $("input[name^=search]").each(function (){
    /* set the value to empty */
    $(this).val('');
  }
}
</script>
于 2012-09-27T20:34:24.067 に答える