jq的id选择器在复选框时候的不理解 5C

在获取复选框状态时候为什么我写:$("#che")[0].checked就可以
写$("#che").checked就不行,id选择器不是只会获取唯一的吗,为什么还要[0]

5个回答

$("#che")[0] 获取的是原生的 dom 对象, 所以可以 $("#che")[0].checked

jq 对象使用获取 $("#che").prop("checked")

设置: $("#che").prop("checked",true)

checked是属性,你可以用$("#che").attr()去处理。

en_joker
孤芳不自賞 回复lPsycongroo: 根据id可以获取,你直接$("#che").html(),控制台看一下.
9 个月之前 回复
baidu_37252709
lPsycongroo 回复: jq 里面id选择器不应该是唯一的吗
9 个月之前 回复
baidu_37252709
lPsycongroo 不是这个问题,我想知道为什么我$("#che")获取不到那个复选框,一定要$("#che")[0],jq
9 个月之前 回复

你可以使用$("#che").is(':checked');来判断这个复选框的选中状态,返回false和true

weixin_42454431
v啊印 回复lPsycongroo: 返回的是数组的话表示应该有其他的值,也就是说[0]第0个代表的是是否选择,具体的我也不知道,但是可以肯定的是。这个数组不是你理解的他选择器选择了多个形成的数组,而是这个id下的数组
9 个月之前 回复
baidu_37252709
lPsycongroo 这个写法可以,但我还是想知道为什么$("#che")获取到是数组
9 个月之前 回复

$("#che")[0].checked 相当于原生js的 document.getElementById("che").checked

因为.checked属性只能是js原生对象才能调用,jq对象是调用不了的(Jq提供了其他的方法).

所以如果要使用jq选择器 $("#che") 想调用.checked,必须将jq对象转化成js原生对象,

方法就是加一个[0]。

所以$("#che")[0].checked就可以
写$("#che").checked就不行

应该是把原生js和jQuery混淆了,如一楼所说,checked是属性,如果用原生js的话,应该是document.getElementById("che).checked;或者 $("#che") [0].checked(不推荐,这样就把原生js和jquery混在一起了)
如果是jquery的话 ,$("#che").attr("checked")

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问