2

jquery を使用してページから要素を取得しようとしています:

要素:

<a href="path" id="form1:ctlName">

私はこのような要素を取得しようとして失敗しました:

$('#form1:ctlName')

この方法が機能している間:

document.getElementById('form1:ctlName');

問題は、jquery のみの .css プロパティが必要なことです。

jqueryを使用してコントロールを取得する方法を知っている人はいますか?

4

5 に答える 5

2

jQueryはそれをセレクターの拡張として解釈しようとするため、問題は:セレクターに付属しています。セレクターのコロンのいくつかの用途は疑似クラスorです。これらのセレクター拡張機能の完全なリストは、こちらにあります:first:last

これらのセレクターを試してください:

$("[id='form1:ctlName']"); //Method one, encapsulating the id
$("#form1\\:ctlName");     //Method two, escaping the colon

これが実際のデモです

この回答によると、ネイティブ JavaScript メソッドgetElementById(yourId)を呼び出すと、他のメソッドよりも約10 倍高速になることに注意してください。パフォーマンスが最重要である場合は、それを使用することを検討してください。

于 2013-06-02T11:22:21.110 に答える
2

他の回答よりもパフォーマンスが高い (ID 属性を確認するためにすべての要素をループする) 方法は次のとおりです。

$(document.getElementById('form1:ctlName'))

jQuery は、DOM 要素をラップする単なる関数です。問題なく DOM 要素を渡すことができます。

于 2013-06-02T11:30:16.393 に答える
2

これは、「:」が jQuery で特別な意味を持つためです。あなたはそれをエスケープする必要があります。

$('#form1\:ctlName'); // Does not work

どうやら、2 つのスラッシュでエスケープする必要があります。

$('#form1\\:ctlName'); // Works
于 2013-06-02T11:23:51.070 に答える
1

: を 2 つの「\」でエスケープします

$('#form1\\:ctlName')

・「\」が1つでは動作しません。http://jsfiddle.net/m8Vrt/
- "\" が 2 つあると動作しますhttp://jsfiddle.net/eQT6w/1/

于 2013-06-02T11:23:09.473 に答える
0

これを試してください

<a href="path" id="form1_ctlName">
$('#form1_ctlName')

: を _ に置き換えるだけです

: jquery セレクターで制限された文字です この URL を確認してください

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

于 2013-06-02T11:22:37.380 に答える