2

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

<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

4

5 回答 5

2

你真正想要的是:

$("#selector > :radio")

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

于 2009-06-09T12:02:21.453 回答
1

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

您是说当您运行以下代码时,第一个警报将显示“3”,第二个“1”?

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

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

你能验证一下吗?

于 2009-06-09T13:01:44.110 回答
0

看这里

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

$(function() {
    console.log($("#selector input[type=radio]"));          // 3
    console.log($("#selector").find("input[type=radio]"));  // 3
    console.log($("#selector").find("input"));              // 3
});
于 2011-12-14T08:05:23.217 回答
0

尝试

$("#selector").find("input[type=radio]")

于 2009-06-09T12:01:05.387 回答
-3

$("#selector").children("input[@type=radio]")

于 2009-06-09T12:07:36.620 回答