89

私は Wijmo ツールキットの使用を開始しましたが、ドキュメンテーション ページでこれに似たかなりの数のサンプル セレクターに出くわしました。

$(":input[type='radio']").wijradio();

私は次のように書いたでしょう:

$('input[type=radio]').wijradio();

これらは同じことをしますか、それとも私が見逃しているものがありますか?

上記には 2 つの違いがあることに注意してください。最初のセレクターにはコロンがプレフィックスとして付けられ、入力タイプの引用符があります。

4

3 に答える 3

88

:inputjQuery拡張機能inputあり、はCSSセレクターです。

textarea、、buttonおよびselect要素は前者と一致しますが、後者とは一致しません。

後者の方が速いので、特定のradio例に使用してください。厳密にタグ:inputでなくても、「すべてのフォーム要素」が必要な場合に使用します。<input>その場合でも、最初に標準のCSSセレクターを使用.filter(':input')してから、そのセットで使用することをお勧めします。

:inputはjQuery拡張機能であり、CSS仕様の一部ではないため、:inputを使用するクエリでは、ネイティブDOM querySelectorAll()メソッドによって提供されるパフォーマンスの向上を利用できません。:inputを使用して要素を選択するときに最高のパフォーマンスを実現するには、最初に純粋なCSSセレクターを使用して要素を選択し、次に.filter( ":input")を使用します。

1.7.2ソースでは、:inputフィルターはnodeNameに対して正規表現をテストします。

input: function( elem ) {
            return (/input|select|textarea|button/i).test( elem.nodeName );
},
于 2012-05-11T14:03:46.513 に答える
17

セレクターは、$("input")入力タイプの要素のみを選択します

$(":input")セレクターはすべての入力要素(textarea、select、inputなど)をキャッチします

詳細については、:inputセレクタに関するjQueryの公式ドキュメントを参照してください。

http://api.jquery.com/input-selector/

于 2012-05-11T14:03:58.947 に答える
6

セレクターは:input基本的にすべてのformコントロール(入力、テキストエリア、選択、ボタン要素)を選択しますが、inputセレクターはタグ名ですべての要素を選択しますinput

ラジオボタンはform要素であり、inputタグを使用しているため、両方を使用してラジオボタンを選択できます。ただし、どちらのアプローチも要素を見つける方法が異なるため、それぞれに異なるパフォーマンス上の利点があります。

于 2012-05-11T14:03:40.457 に答える