与えられた文字列で終わるIDを持つ要素を問い合わせることができるselector
はありますか?
ctl00$ContentBody$txtTitle
というIDを持つ要素があるとします。 txtTitle
だけを渡してこれを取得するにはどうすればよいですか。
もしあなたがその要素の型を知っているならば:
$("element[id$='txtTitle']")
要素の種類がわからない場合
$("[id$='txtTitle']")
// the old way, needs exact ID: document.getElementById("hi").value = "kk";
$(function() {
$("[id$='txtTitle']").val("zz");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="ctl_blabla_txtTitle" type="text" />
質問に対する答えは$("[id$='txtTitle']")
、 Mark Hurdが答えたように ですが、私のように、で始まる文字列(例えばtxtTitle)で始まるidを持つすべての要素を見つけたい人のために、これを試してください( doc ):
$("[id^='txtTitle']")
Id contains与えられた文字列( doc )を含む要素を選択したい場合:
$("[id*='txtTitle']")
Id 与えられた文字列( doc )ではない)要素を選択したい場合:
$("[id!='myValue']")
(指定された属性を持たない要素にもマッチします)
Id 与えられたWordを含み、スペース( doc )で区切られた要素を選択します。
$("[id~='myValue']")
Idが指定された文字列と等しい、またはその文字列の後にハイフン( doc )が続く)の要素を選択する場合は、次のようにします。
$("[id|='myValue']")
やってみる
$("element[id$='txtTitle']");
編集:4秒遅れ:P
$('element[id$=txtTitle]')
一致させるテキストの一部を引用符で囲む必要はありません。
同じIDで終わる他の要素と一致する可能性が低いため、検索する用語にアンダースコアまたは$を追加する方が安全です。
$("element[id$=_txtTitle]")
(whereelementはあなたが探している要素の型です - 例えばdiv
、input
など。
(注:IDに$記号を含める傾向があることをお勧めしていますが、.NET 2ではIDの代わりにアンダースコアを使用する傾向があるため、この例ではアンダースコアを使用します).
これはASP.NETなので、ASP <%=%>タグを使用して、生成されたtxtTitleのClientIDを印刷できます。
$('<%= txtTitle.ClientID %>')
これはになります...
$('ctl00$ContentBody$txtTitle')
...ページがレンダリングされたとき.
注:Visual Studioでは、IntellisenseはJavaScriptにASPタグを追加したことに対してあなたを怒らせます。結果は有効なJavaScriptなので、これは無視できます。
例:IDが_editで終わるすべての<a>
を選択するには、
jQuery("a[id$=_edit]")
または
jQuery("a[id$='_edit']")
これを試して:
<asp:HiddenField ID="0858674_h" Value="0" runat="server" />
var test = $(this).find('[id*="_h"').val();
多くのiframeを含むページ内で「iFrame」で終わるiframe IDを見つけるため。
jQuery(document).ready(function (){
jQuery("iframe").each(function(){
if( jQuery(this).attr('id').match(/_iFrame/) ) {
alert(jQuery(this).attr('id'));
}
});
});