web-dev-qa-db-ja.com

jQuery Selector:IDの終わりは?

与えられた文字列で終わるIDを持つ要素を問い合わせることができるselectorはありますか?

ctl00$ContentBody$txtTitleというIDを持つ要素があるとします。 txtTitleだけを渡してこれを取得するにはどうすればよいですか。

365
Josh Stodola

もしあなたがその要素の型を知っているならば:

$("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" />
593
Mark Hurd

質問に対する答えは$("[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']")
240
Romain Guidoux

やってみる

$("element[id$='txtTitle']");

編集:4秒遅れ:P

32
kkyy
$('element[id$=txtTitle]')

一致させるテキストの一部を引用符で囲む必要はありません。

30
Scott Evernden

同じIDで終わる他の要素と一致する可能性が低いため、検索する用語にアンダースコアまたは$を追加する方が安全です。

$("element[id$=_txtTitle]")

(whereelementはあなたが探している要素の型です - 例えばdivinputなど。

(注:IDに$記号を含める傾向があることをお勧めしていますが、.NET 2ではIDの代わりにアンダースコアを使用する傾向があるため、この例ではアンダースコアを使用します).

13
Nick Gilbert

これはASP.NETなので、ASP <%=%>タグを使用して、生成されたtxtTitleのClientIDを印刷できます。

$('<%= txtTitle.ClientID %>')

これはになります...

$('ctl00$ContentBody$txtTitle')

...ページがレンダリングされたとき.

注:Visual Studioでは、IntellisenseはJavaScriptにASPタグを追加したことに対してあなたを怒らせます。結果は有効なJavaScriptなので、これは無視できます。

3
Michael

例:IDが_editで終わるすべての<a>を選択するには、

jQuery("a[id$=_edit]")

または

jQuery("a[id$='_edit']")
3
Anton K

これを試して:

<asp:HiddenField ID="0858674_h" Value="0" runat="server" />

var test = $(this).find('[id*="_h"').val();
1
pawel

多くのiframeを含むページ内で「iFrame」で終わるiframe IDを見つけるため。

jQuery(document).ready(function (){     
                  jQuery("iframe").each(function(){                     
                    if( jQuery(this).attr('id').match(/_iFrame/) ) {
                            alert(jQuery(this).attr('id'));

                     }                   
                  });     
         });
0
neelmeg