如何在已有jQuery选择器的情况下无需循环获取选中的单选按钮?
如何在已获取的单选按钮集合中直接获取选中项(无需循环)
当然可以!既然你已经通过var choices = $('input[name="choices"]')拿到了目标单选按钮的jQuery集合,完全不用循环或者each就能直接定位到选中的那一个,这里有几种简洁的实现方式:
使用jQuery的
filter()方法(推荐)
这是最直观的方式,利用filter()在已有的元素集合中筛选符合:checked条件的元素:var checkedChoices = choices.filter(':checked');因为单选按钮同一时间只能有一个被选中,所以返回的
checkedChoices是包含单个选中元素的jQuery对象,你可以直接调用checkedChoices.val()获取它的值,或者进行其他DOM操作。利用原生JS结合jQuery
如果你想结合原生JS的数组方法,也可以这样写:// 先把jQuery集合转成原生数组,再找到checked为true的元素,最后转回jQuery对象 var checkedChoices = $(Array.from(choices).find(el => el.checked));这种方式虽然可行,但相比
filter()会稍显繁琐,更推荐第一种方法。
需要注意的是,如果当前没有任何单选按钮被选中,那么checkedChoices会是一个空的jQuery对象,调用val()会返回undefined,你可以根据业务场景做相应的判断。
内容的提问来源于stack exchange,提问作者JacobIRR
相关产品推荐
相关产品推荐

