$('#<%=lblName.ClientID%>')
とはどう違い$("[id$=lblName]")
ますか?
4 に答える
$('#<%=lblName.ClientID%>')
ASP.Netid
のプロパティによって提供される属性を持つ要素を検索します。ClientID
$("[id$=lblName]")
は、たとえばid
で終わる属性を持つ要素を検索します。lblName
foo-lblName
$('#<%=lblName.ClientID%>')
-#は、idを持つ要素を識別するためにJQueryによって使用されるIdセレクターです。
$("[id$=lblName]")
-lblNameで終わるid属性を持つすべての要素を選択します
最初の 1 つ ( $('#<%=lblName.ClientID%>')
)、id セレクターは、ID によって要素を見つけます。ネイティブを使用するため、非常に高速ですdocument.getElementById
2 つ目のAttribute Ends With selectorは、別の方法で機能します。たとえば、IE では、指定された値 (または同様のもの) で終わる場合、すべての要素と各要素のテスト ID を取得します。それははるかに遅いです。新しいブラウザーには、おそらくそのセレクターによって要素を見つけるために使用されるquerySelectorAllがありますが、その関数でサポートされているかどうかはわかりません (まあ、ここでは vailid css3 のように定義されているので、最新のブラウザーが終了をサポートすると仮定しますquerySelectorAll のセレクター)。
したがって、結論として、id セレクターはどのような場合でも高速であり、古いブラウザーの場合ははるかに高速です。同時に、ends with selector を使用すると、クライアント ID をブラウザーに渡さずに要素を見つけることができます。
今日知ったことを追加$('#<%=lblName.ClientID%>')
するだけで、1 つの要素のみが選択$("[id$=lblName]")
されますが、複数の要素が選択されるため、複数の要素に同じ ID が割り当てられていて、それらすべてをトラバースしたい場合は、最初のケースは選択されません。正しく機能します。