1

HTML

<div id="t">
    <input type="button" class="theClass" />
    <input type="button" class="theClass" />
    <input type="button" class="notTheClass" />
</div>

Javascript

var result = $('#t > input').find('.theClass').length;
console.log(result);

期待される結果:2

実結果:0

JSFiddle:こちら.


.find() の jQuery 仕様から

セレクターでフィルター処理された、一致する要素の現在のセット内の各要素の子孫を取得します

誰かが.find()私が探している2つを返すのではなく、すべての要素を除外する理由を説明できますか?

補足: $('#t > input').length正しく返されます:3

4

5 に答える 5

8

なぜ find を使用しているのですか? これができるとき。

var result = $('#t > input.theClass').length;
于 2013-10-01T16:09:43.913 に答える
4
$("#t > input").filter(".theClass")

http://jsfiddle.net/MTt4u/

于 2013-10-01T16:08:40.157 に答える
3

何も見つからないため、入力内を探していますが、これは間違っています。このようにしてください:

var result = $('#t').find('input.theClass').length;
于 2013-10-01T16:08:03.670 に答える
1

'.theClass'コードでは、 の子としてを探していますinput。あなたがする必要があります:

var result = $('#t input.theClass').length;

また

var result = $('#t').find('input.theClass').length;
于 2013-10-01T16:12:22.807 に答える
0

これは簡単に行うことができます

var result = $('#t > .theClass').length;

使用する理由はありませんfind()

于 2013-10-01T16:10:06.133 に答える