Javascript获取其中包含数组键的字段数组的长度

时间:2015-11-17 10:54:47

标签: javascript jquery arrays

我有一个带有数组的简单表单:

<form id='my_form'>
    <input type="text" name="my_array[1]">
    <input type="text" name="my_array[5]">
    <input type="text" name="my_array[6]">
    <input type="text" name="non_array_field">
</form>

如您所见,指定了数组键

如何获得此阵列的长度?我可以使用javascript或jquery

这些仅在数组没有键时才有效:

document.querySelectorAll("[name='my_array[]']").length
document.formName.elements["my_array[]"].length

1 个答案:

答案 0 :(得分:2)

使用attribute-starts with selector。要仅选择表单内的元素,请使用表单选择器。

  

[ATTR ^ =值]

     

表示属性名称为attr且其值以“value”为前缀的元素。

document.querySelectorAll("#my_form [name^='my_array[']").length

var len = document.querySelectorAll('#my_form [name^="my_array["]').length;
console.log(len);
<form id='my_form'>
  <input type="text" name="my_array[1]">
  <input type="text" name="my_array[5]">
  <input type="text" name="my_array[6]">
  <input type="text" name="non_array_field">
</form>

使用jQuery

Docs

$("#my_form [name^='my_array[']").length

var len = $('#my_form [name^="my_array["]').length;
console.log(len);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<form id='my_form'>
  <input type="text" name="my_array[1]">
  <input type="text" name="my_array[5]">
  <input type="text" name="my_array[6]">
  <input type="text" name="non_array_field">
</form>