jQuery Selector:Id Ends With?
-
03-07-2019 - |
質問
特定の文字列で終わるIDを持つ要素を照会できるselector
がありますか?
ctl00$ContentBody$txtTitle
のidを持つ要素があるとします。 txtTitle
を渡すだけでこれを取得するにはどうすればよいですか?
解決
要素タイプがわかっている場合:(たとえば、「element」を「div」に置き換えます)
$("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を持つ要素を選択する場合> doc ):
$("[id*='txtTitle']")
idがではない指定された文字列( doc ):
$("[id!='myValue']")
(指定された属性を持たない要素にも一致します)
IDがスペースで区切られた特定の単語を含む要素を選択する場合( doc ):
$("[id~='myValue']")
idが指定された文字列と等しいか、その文字列で始まりハイフンが続く要素( doc ):
$("[id|='myValue']")
試用
$("element[id$='txtTitle']");
編集:4秒遅れ:P
$('element[id$=txtTitle]')
一致するテキストフラグメントを引用符で囲む必要はありません
検索する用語にアンダースコアまたは$を追加すると、同じIDで終わる他の要素と一致する可能性が低くなります。
$("element[id$=_txtTitle]")
( element は、検索しようとしている要素のタイプです。例:div
、input
など。
(IDには$記号が含まれる傾向があることを示唆していますが、.NET 2はIDにアンダースコアを使用する傾向があるため、この例ではアンダースコアを使用しています)
例:
IDが_editで終わるすべての<a>
を選択するには:
jQuery("a[id$=_edit]")
または
jQuery("a[id$='_edit']")
これはASP.NETであるため、単にASP <!> lt;%=%<!> gt;を使用できます。 txtTitleの生成されたClientIDを印刷するタグ:
$('<%= txtTitle.ClientID %>')
これにより、...
$('ctl00$ContentBody$txtTitle')
...ページがレンダリングされるとき。
注:Visual Studioでは、IntellisenseがJavaScriptにASPタグを挿入したことを叫ぶでしょう。結果は有効なJavaScriptであるため、これは無視できます。
これを試してください:
<asp:HiddenField ID="0858674_h" Value="0" runat="server" />
var test = $(this).find('[id*="_h"').val();
<!> quot; iFrame <!> quotで終わるiframe idを見つけるため多くのiframeを含むページ内。
jQuery(document).ready(function (){
jQuery("iframe").each(function(){
if( jQuery(this).attr('id').match(/_iFrame/) ) {
alert(jQuery(this).attr('id'));
}
});
});