web-dev-qa-db-ja.com

jQueryを使用して、要素IDに特定のテキストが含まれるページ上のすべての要素を検索します

要素IDに特定のテキストが含まれるページ上のすべての要素を検索しようとしています。次に、見つかった要素を非表示かどうかに基づいてフィルタリングする必要があります。どんな助けも大歓迎です。

115
user48408
$('*[id*=mytext]:visible').each(function() {
    $(this).doStuff();
});

セレクターの先頭にあるアスタリスク「*」に注意してください すべての要素に一致

Attribute Contains Selectors 、および :visible および :hidden セレクターを参照してください。

178
karim79

Containsで検索している場合、このようになります

    $("input[id*='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

Starts Withで検索している場合、次のようになります。

    $("input[id^='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

Ends Withで検索している場合、次のようになります。

     $("input[id$='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

idが指定された文字列ではない要素を選択する場合

    $("input[id!='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

idがスペースで区切られた特定のWordを含む要素を選択する場合

     $("input[id~='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

idが特定の文字列に等しいか、その文字列で始まりハイフンが続く要素を選択する場合

     $("input[id|='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });
120
dnxit

これにより、IDが「foo」で表示されているすべてのDIVが選択されます

$("div:visible[id*='foo']");
18
port-zero

両方に感謝します。これは私にとって完璧に機能しました。

$("input[type='text'][id*=" + strID + "]:visible").each(function() {
    this.value=strVal;
});
6
user48408