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 });
$( “#选择器”)。儿童( “输入[@类型=无线电]”)