Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript获取HTML数组长度_Javascript_Html_Arrays - Fatal编程技术网

使用Javascript获取HTML数组长度

使用Javascript获取HTML数组长度,javascript,html,arrays,Javascript,Html,Arrays,当用户双击选择框中的元素时,我动态地创建输入。每个元素类型可以有多个输入,所以我将它们创建为HTML数组。创建输入时,还将创建指向javascript函数的链接。所述函数将为单击的特定字段打开日历提示。我已将问题缩小到以下代码: document.getElementById( 'start_' + field + '[]' ).length 正如您所看到的,我正在尝试获取数组的长度,就像使用普通javascript数组一样。当然,这是行不通的。我在谷歌上找不到任何引用这个的东西,这通常意味着

当用户双击选择框中的元素时,我动态地创建输入。每个元素类型可以有多个输入,所以我将它们创建为HTML数组。创建输入时,还将创建指向javascript函数的链接。所述函数将为单击的特定字段打开日历提示。我已将问题缩小到以下代码:

document.getElementById( 'start_' + field + '[]' ).length
正如您所看到的,我正在尝试获取数组的长度,就像使用普通javascript数组一样。当然,这是行不通的。我在谷歌上找不到任何引用这个的东西,这通常意味着这是不可能的,但我觉得很难相信

或者,我可以在每次创建这个字段时增加一个变量,我只是想确保我没有遗漏一些显而易见的东西

提前谢谢你

{编辑}

请参考之前告诉我,HTML不允许数组

{双重编辑+回答}


问题不是HTML数组不存在,而是ID属性不能是数组。我发现它解释了如何做我需要的事情…ish。

使用这种语法怎么样

onclick="myFunction( event, this )"
使用它,您可以传递任何重要的数据—第一个参数中的鼠标位置和第二个参数中的对象


在您的情况下,语法无效,事实id必须是唯一的,并且foooBar[]与另一个foooBar[]的id相同(事实上HTML对数组一无所知)

使用这种语法怎么样

onclick="myFunction( event, this )"
使用它,您可以传递任何重要的数据—第一个参数中的鼠标位置和第二个参数中的对象


在您的情况下,语法无效,事实id必须是唯一的,并且foooBar[]与另一个foooBar[]的id相同(事实上HTML对数组一无所知)

document.getElementById不返回HTML集合,因此它没有长度属性

document.getElementById不返回HTML集合,因此它没有长度属性

您可以使用以下纯JavaScript代码:

oForm = document.forms[0];
oForm.elements['start_' + field + '[]'].length;
或者在jQuery库中:

$('input[name="start_' + field + '[]"]').length;

我更喜欢第二个,因为我不能100%确定第一个解决方案的跨浏览器兼容性。

您可以使用以下纯JavaScript代码:

oForm = document.forms[0];
oForm.elements['start_' + field + '[]'].length;
或者在jQuery库中:

$('input[name="start_' + field + '[]"]').length;

我更喜欢第二个,因为我不能100%确定第一个解决方案的跨浏览器兼容性。

这已经在onClick函数中了。问题是被单击的元素是一个选择框。我可以解析这个元素中所有必要的信息,然后创建输入框。然后我需要得到输入框HTML数组的长度,这样我就可以创建链接来引用数组中的特定索引。如果你不正确,HTML允许数组,我一直在使用它们。它会根据需要动态扩展阵列,我只是不知道如何访问该阵列。如果我在后端将数组传递给PHP,我会收到一个数组,比如$_POST['input'][0],等等。问题是javascript也可以访问该数组吗?你错了,这不是HTML的问题,而是PHP-它应用于名称,而不是id-因此答案是-不,javascript不能,因为这不是作为数组解析的(这是由服务器上的PHP完成的)-您可以从document.getElementsByTagName('*');(或者用父节点替换document)获取数组你把我带到了正确的位置。HTML数组可以在name属性中使用,但不能在id属性中使用。非常感谢,我已经接受了答案这已经在onClick函数中了。问题是被单击的元素是一个选择框。我可以解析此元素的所有必要信息,然后创建输入框。然后,我需要获取输入框HTML数组的长度,以便我可以创建引用数组中特定索引的链接。如果你不正确,HTML允许数组,我一直使用它们。它会根据需要动态扩展数组,我只是不知道如何访问所述数组。如果我在后端将数组传递给PHP,我会收到一个array,例如$_POST['input'][0],等等。问题是javascript也可以访问该数组吗?你错了,这不是HTML的特性,而是PHP-它应用于名称,而不是id-因此答案是-不,javascript不能,因为这不是作为数组解析的(这是由服务器上的PHP完成的)-您可以从document.getElementsByTagName('*');(或用父节点替换document)获取数组你把我带到了正确的位置。HTML数组可以在name属性中使用,但不能在id属性中使用。非常感谢,我已经接受了答案HTML没有数组,你被PHP的表单数据解析规则弄糊涂了。不能有多个元素具有相同的id,也不能使用字符
[
]
在HTML 4、x或XHTML ID中。HTML没有数组,您会被PHP的表单数据解析规则弄糊涂。不能有多个具有相同ID的元素,也不能在HTML 4、x或XHTML ID中使用字符
[
]