如何从Jquery选择返回HtmlCollection

时间:2013-01-28 08:06:51

标签: javascript jquery

我有一个像这样的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 Form elements  元素周围有很多混乱。 elements是html form对象的属性,它是form

中所有元素的集合

Here is a JSfiddle for this.

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分:0)

是的,有:

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

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

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

document.getElementsByName('myFormElementName');