jQuery选择器错误?组合选择器与简单选择器&找()

时间:2009-06-09 11:57:37

标签: javascript jquery sizzle

我的情况非常尴尬......我有这样的事情:

<div id="selector">
   <input type='radio' />
   <input type='radio' />
   <input type='radio' />
</div>

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

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

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

编辑:我正在使用jquery 1.3.2

5 个答案:

答案 0 :(得分:2)

你真正想要的是:

$("#selector > :radio")

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

答案 1 :(得分:1)

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

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

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

alert(a.length);
alert(b.length);

你可以验证吗?

答案 2 :(得分:0)

尝试

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

答案 3 :(得分:0)

See here

所有三个都返回相同的结果!

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

答案 4 :(得分:-3)

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