jQuery选择器错误? 组合选择器与简单选择器和find()

关于我的情况有点尴尬……我有这样的事情:

如果我使用$("#selector input[type=radio]")则找到所有三个元素,但如果我使用$("#selector").find("input[type=radio]")或甚至find("input")只找到第一个。

这是jQuery中的错误吗? 我没有正确使用find()吗?

澄清 :我想使用find()来获取所有输入,但我尝试的任何东西都只找到第一个。

编辑:我正在使用jquery 1.3.2

你真正想要的是:

 $("#selector > :radio") 

至于为什么你只得到一个,我需要看到正在运行的实际代码,因为find()不会停在一个并且会找到所有匹配,所以它可能就是你之后使用它的方式问题。

这两个代码片段应该返回相同的结果。

你是说当你运行以下代码时,第一个警报会显示“3”而第二个警告会显示“1”吗?

 var a = $("#selector input[type=radio]"); var b = $("#selector").find("input[type=radio]"); alert(a.length); alert(b.length); 

你能validation一下吗?

尝试

$( “#选择器”)。发现( “输入[类型=无线电]”)

看这里

这三个都返回相同的结果!

 $(function() { console.log($("#selector input[type=radio]")); // 3 console.log($("#selector").find("input[type=radio]")); // 3 console.log($("#selector").find("input")); // 3 }); 

$( “#选择器”)。儿童( “输入[@类型=无线电]”)