jquery - 为什么 $('input[name="ShowAvatarRdo"][value="true"]') 和 $('input[name="ShowAvatarRdo"]) 是不同的?
问题描述
我使用JQuery通过两种方式获取相同的元素,$('input[name="ShowAvatarRdo"][value="true"]')
并且$('input[name="ShowAvatarRdo"])[0]
,这是控制台中的结果
$('input[name="ShowAvatarRdo"][value="true"]')
r.fn.init [input#test, prevObject: r.fn.init(1)]
$('input[name="ShowAvatarRdo"]')[0]
<input type="radio" name="ShowAvatarRdo" id="test" value="true" checked="checked">
结果的类型似乎不同,为什么?
解决方案
如果您只有一个复选框,则选择器input[name="ShowAvatarRdo"]
和input[name="ShowAvatarRdo"][value="true"]
返回的元素数组相同。
在第一种情况下,您获取整个数组,在第二种情况下,您获取第一个元素。
如果你把[0]
两者都放在后面,你会得到完全相同的结果,或者如果你不取第一个元素,你会得到整个数组(1个元素)的两倍:)