回答:
要素のタイプがわかっている場合:(例: 'element'を 'div'に置き換えます)
$("element[id$='txtTitle']")
要素タイプがわからない場合:
$("[id$='txtTitle']")
document.getElementById("f:fTest:j_idt51:0:inpTest")
。これはしません$("[id$='inpTest']")
。コロンはIDで許可されていないためですか(しかしJSFはそれを追加します!)?
質問への答えは$("[id$='txtTitle']")
、マーク・ハードが答えたようにですが、私のように、特定の文字列(たとえば、txtTitle)で始まる IDを持つすべての要素を検索したい場合は、これを試してください(doc):
$("[id^='txtTitle']")
id に特定の文字列(doc)を含む要素を選択する場合:
$("[id*='txtTitle']")
与えられた文字列(doc)ではない要素を選択したい場合:
$("[id!='myValue']")
(指定された属性を持たない要素にも一致します)
スペースで区切られた特定の単語を含む要素を選択する場合は、(doc):
$("[id~='myValue']")
idが特定の文字列と等しいか、その文字列で始まりハイフン(doc)が続く要素を選択する場合:
$("[id|='myValue']")
同じIDで終わる他の要素と一致する可能性が低くなるように、検索する用語にアンダースコアまたは$を追加する方が安全です。
$("element[id$=_txtTitle]")
ここで、(要素が要素の型である、あなたは見つけるためにしようとしている-例えばdiv
、input
など
(IDには$記号が含まれる傾向があることをお勧めしますが、.NET 2ではIDにアンダースコアを使用する傾向があるため、私の例ではアンダースコアを使用しています)。
これはASP.NETであるため、ASP <%=%>タグを使用して、生成されたtxtTitleのClientIDを出力できます。
$('<%= txtTitle.ClientID %>')
これは...
$('ctl00$ContentBody$txtTitle')
...ページがレンダリングされるとき。
注:Visual Studioでは、IntellisenseはASPタグをJavaScriptに配置することに対して怒鳴りつけます。結果は有効なJavaScriptであるため、これを無視できます。
'ctl00$ContentBody$txtTitle'
、彼には'txtTitle'
があり#
、IDに一致するためのリードがありません。しかし、OPは既に同様の提案を拒否しています(削除されたため)。これは、私がJavaScriptをマークアップに直接配置しない限り機能しません。これは、組織の悪夢です。行動の分離は、このプロジェクトにとって重要です。