如何将jQuery对象转换为JS数组?

时间:2017-04-10 04:49:19

标签: javascript jquery html

这是我的旧代码:

checkboxes = document.getElementsByName('foo');

如您所知,checkboxes将是一个数组。现在我需要限制选择范围。所以这是我的新代码:

checkboxes = $('.myclass input[name=foo]');

但是在这种情况下checkboxes不再是一个数组,它是一个jQuery对象。如何使其与getElementsByName('foo')的结果相同?

请注意,$('.myclass input[name=foo]')[0]也不会发挥作用。

6 个答案:

答案 0 :(得分:4)

尝试.toArray()

checkboxes = $('.myclass input[name=foo]').toArray();

答案 1 :(得分:2)

您可以使用.map()并创建getElementsByName()返回

的基础DOM数组
checkboxes  = $('.myclass input[name=foo]').map(function(){ return this;}).get();

我会推荐@Charlie answer

您无需转换为Node elements数组。将您的功能更改为

function toggle(source, target) {
    $(target).find('input[name=foo]').prop('checked', source.checked);
}

用法

toggle(source, '.compare_people')
toggle(source, '.compare_posts')

答案 2 :(得分:2)

使用此

var checked = [];
$.each($("input[name='foo']:checked"), function(){
checked.push($(this). val());
});

答案 3 :(得分:2)

Charlie已经指出jQuery对象具有public static List<Person> createPersonsFromEmployees(List<Employee> employees) Function<Employee, Person> employeeToPerson = e -> new Person(e.getFirstName, e.getLaseName(), e.getEmail()); return employees.stream() .filter(Object :: nonNull) .map(employeeToPerson) .collect(Collectors.toList()); } 函数。我觉得那会有用。想象一下,值得注意的是,还有一个toArray()函数,用于将类似数组的对象转换为本机JavaScript数组。 https://api.jquery.com/jQuery.makeArray/

答案 4 :(得分:0)

document.querySelectorAll(&#34;输入[名称= FOO]&#34)

答案 5 :(得分:0)

$('selector')[0]从jquery对象获取javascript对象应该有效。请参阅此链接的答案How to get javascript control from JQuery object? 我怀疑你的选择器是上述方法不起作用的原因。将双引号添加到名称值将使其起作用:

checkboxes = $('.myclass input[name="foo"]');