6

$('#<%=lblName.ClientID%>')とはどう違い$("[id$=lblName]")ますか?

4

4 に答える 4

22

$('#<%=lblName.ClientID%>')ASP.Netidのプロパティによって提供される属性を持つ要素を検索します。ClientID

$("[id$=lblName]")は、たとえばidで終わる属性を持つ要素を検索します。lblNamefoo-lblName

于 2012-12-05T10:57:24.350 に答える
2

$('#<%=lblName.ClientID%>')-#は、idを持つ要素を識別するためにJQueryによって使用されるIdセレクターです。

$("[id$=lblName]")-lblNameで終わるid属性を持つすべての要素を選択します

于 2012-12-05T11:03:16.120 に答える
1

最初の 1 つ ( $('#<%=lblName.ClientID%>'))、id セレクターは、ID によって要素を見つけます。ネイティブを使用するため、非常に高速ですdocument.getElementById

2 つ目のAttribute Ends With selectorは、別の方法で機能します。たとえば、IE では、指定された値 (または同様のもの) で終わる場合、すべての要素と各要素のテスト ID を取得します。それははるかに遅いです。新しいブラウザーには、おそらくそのセレクターによって要素を見つけるために使用されるquerySelectorAllがありますが、その関数でサポートされているかどうかはわかりません (まあ、ここでは vailid css3 のように定義されているので、最新のブラウザーが終了をサポートすると仮定しますquerySelectorAll のセレクター)。

したがって、結論として、id セレクターはどのような場合でも高速であり、古いブラウザーの場合ははるかに高速です。同時に、ends with selector を使用すると、クライアント ID をブラウザーに渡さずに要素を見つけることができます。

于 2012-12-05T11:03:54.097 に答える
0

今日知ったことを追加$('#<%=lblName.ClientID%>')するだけで、1 つの要素のみが選択$("[id$=lblName]")されますが、複数の要素が選択されるため、複数の要素に同じ ID が割り当てられていて、それらすべてをトラバースしたい場合は、最初のケースは選択されません。正しく機能します。

于 2012-12-17T13:25:59.933 に答える