jQueryセレクターの先頭のコロンの目的は何ですか?


84

私はWijmoツールキットを使い始めましたが、ドキュメントページでこれに似たセレクターの例をたくさん見つけました。

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

私はこのように私のものを書いていただろう:

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

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

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


4
1つは特殊な:inputセレクターで、もう1つは汎用Elementセレクターです。
mellamokb 2012年

回答:


85

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

textareabutton、および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 );
},

それは理にかなっています、ありがとう!そして、タイプクォートは完全にオプションですか?
Morten Mertner 2012年

1
正直なところ、特定のタイプを探し[type=]:inputいる場合、:input最初にすべてを取得するために使用するのは遠い道のりのように思われるため、私はこれまで使用したことがありません。純粋なCSSセレクターの場合、引用符は標準であると理解していますが、ブラウザーは寛容です。あなたはすぐにここにせずに/でそれをテストすることができreference.sitepoint.com/css/css3attributeselectors/demo
デヴィッドRuttka

したがって、$( ":checked")はチェックボックスを提供します..これもjquery拡張機能ですか?
Vishal Sharma 2013年

@David Ruttka:「ブラウザは寛容です」はHTMLと、癖モードのCSSにのみ適用されます。このステートメントは、標準モードのCSSには適用されません。引用は合法的に省略できる場合があります。
–BoltClock

例を挙げてfirst select the elements using a pure CSS selector, then use .filter(":input").もらえますか?
Poutrathor

17

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

一方、$(":input")セレクタは、すべての入力要素をキャッチする(ETC入力、例えばTEXTAREAなど、選択を...)

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

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


6

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.