-1

我有一个这样的 jquery 选择:

elements= $($('#mytab').find('form').attr('elements')).not('button');

// access elements by name
 elements['id']=1;

这显然不起作用:(

我需要 jquery 将集合作为 HtmlCollection 返回,例如

$('#mytab').find('form').attr('elements')

我的问题是,是否有任何可用的函数,例如 toArray() 等将集合返回为 HtmlCollection,而不是 jquery 数组/对象集合?我的主要目标是按名称而不是索引访问表单元素,例如

elements['id'], elements['name']

Html 表单元素 元素 周围有很多混淆。元素是htmlform对象的属性,它是所有元素的集合form

这是一个 JSfiddle 。

4

2 回答 2

1

elements是属性而不是属性,您应该改用prop方法:

var elements = $('#mytab').find('form').prop('elements');

或者:

var elements = $('#mytab').find('form')[0].elements;

好吧,如果你想过滤输入元素,你可以使用get方法,不需要使用elements属性:

var elements = $('#mytab form input').get();

http://api.jquery.com/get/

于 2013-01-28T08:24:21.023 回答
0

是的,有:

$.makeArray($('div'));

div这将返回页面上所有元素的数组。显然,您可以使用任何您想要的选择器。

要按名称获取元素数组,只需使用本机 JS:

document.getElementsByName('myFormElementName');
于 2013-01-28T08:13:11.383 回答