0

私はフィルターがどのように機能するかを理解しようとしており、次のように小さな html コードを書きました

<div id='btnContainer'>
    <input type="button" id='btnContinue' value='Continue'>
    </input>
    <input type="button" id='btnCancel' value='Cancel'>
    </input>
</div>


alert($('#btnContainer').filter('#btnContinue').length);

これにより、予想される 1 ではなく 0 の警告メッセージが表示されます - jquery 1.44

ポインタをください

4

4 に答える 4

0

マニュアルを読む:

一致した要素のセットを、セレクターに一致するか、関数のテストに合格する要素に減らします。

セレクターに一致する要素$('#btnContainer')は親のみであり、その子は含まれません。入力をフィルタリングする場合は、次を使用します。

alert($('#btnContainer').children().filter('#btnContinue').length);

また、input要素は自己閉鎖しています...

于 2012-08-31T19:09:03.830 に答える
0

フィルター メソッドは、メソッドに入力されたセレクターによって、一致する要素のセットを削減します。#btnContainer という 1 つのアイテムを選択し、ID #btnContinue を持つ要素のこの選択をフィルタリングしようとしました。選択した要素のセットには、ID #btnContinue を持つ要素はありません。ID #btnContainer を持つ要素は 1 つだけです。これが 0 を受け取る理由です。

filter メソッドの適切な使用法は、同じクラス名を持つ多数の div などの複数の項目を選択し、選択した div を他の基準を使用してフィルタリングすることです。

このデモは、フィルター メソッドの適切な使用法を示しています: http://jsfiddle.net/8AMYx/1/

他の例については、JQuery ドキュメントを参照してください: http://api.jquery.com/filter/

于 2012-08-31T19:09:27.707 に答える
0

$('#btnContainer')単一の要素 (最初の最上位の div) に一致します。

.filter()一致した要素のセットを、新しいセカンダリ セレクターに一致する要素のみに減らします (この場合は ) #btnContinue。最上位の div が id-selector と一致しないため#btnContinue、新しく一致したセットは空です。

最初のセレクターを要素とそのすべての子に一致させたい場合は、次のようにします。

var matchedSet = $('#btnContainer').find('*').andSelf();

次に、次のことができます。

alert( matchedSet.filter('#btnContinue').length ); // == 1

修正コードのデモ

詳細については、jQuery のドキュメントを参照し.filter()てください。

于 2012-08-31T19:09:29.780 に答える
0

btnContainerIDのアイテムがないため、0 アイテムを返していますbtnContinue

filterfilter は結果セットをセレクターに一致するアイテムのみに減らします。

おそらくこれが必要です:$('#btnContainer input').filter('#btnContinue').length

于 2012-08-31T19:10:23.353 に答える