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 回答