这是我的旧代码:
checkboxes = document.getElementsByName('foo');
如您所知,checkboxes
将是一个数组。现在我需要限制选择范围。所以这是我的新代码:
checkboxes = $('.myclass input[name=foo]');
但是在这种情况下checkboxes
不再是一个数组,它是一个jQuery对象。如何使其与getElementsByName('foo')
的结果相同?
请注意,$('.myclass input[name=foo]')[0]
也不会发挥作用。
答案 0 :(得分:4)
checkboxes = $('.myclass input[name=foo]').toArray();
答案 1 :(得分:2)
您可以使用.map()
并创建getElementsByName()
返回
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"]');