使用Javascript获取HTML数组长度

时间:2011-08-29 08:40:03

标签: javascript html arrays

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

document.getElementById( 'start_' + field + '[]' ).length

如你所见,我试图抓住数组的长度,就像我使用普通的javascript数组一样。当然,这不起作用。我无法在Google上找到任何引用此内容的内容,这通常意味着它是不可能的,但我发现很难相信。

或者,我可以在每次创建此字段时递增变量我只是想确保我没有遗漏一些非常明显的东西。

提前谢谢!

{编辑}

在告诉我HTML不允许使用数组之前,请参考http://www.thefutureoftheweb.com/blog/use-arrays-with-html-form-inputs

{DoubleEdit +回答}

问题不在于HTML数组不存在,而是ID属性不能是数组。我发现http://roshanbh.com.np/2008/08/handling-array-html-form-elements-javascript-php.html解释了如何做我需要的...... ish。

3 个答案:

答案 0 :(得分:2)

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

oForm = document.forms[0];
oForm.elements['start_' + field + '[]'].length;

或者在jQuery库中:

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

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

答案 1 :(得分:1)

使用这种语法怎么样?

onclick="myFunction( event, this )"

使用此功能可以传递任何重要数据 - 第一个参数中的鼠标位置和第二个

中的对象

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

答案 2 :(得分:0)

document.getElementById不返回HTML Collection,因此它没有length属性。