Suchen Sie mit jQuery alle Elemente auf einer Seite, deren Element-ID einen bestimmten Text enthält


Antworten:


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

Beachten Sie, dass das Sternchen '*' am Anfang des Selektors mit allen Elementen übereinstimmt .

Siehe das Attribut enthält Selektoren sowie die : sichtbaren und : versteckten Selektoren.


17
Erwähnenswert ist vielleicht, dass Sie beim Abgleich mit einem Element idkeine Anführungszeichen verwenden, während Sie beim Abgleich mit einem Element Anführungszeichen nameverwenden. $('*[name*="myname"]:visible') Nicht die intuitivste und hat mich schon einmal eingeholt.
— Ficuscr

Ich habe $ (this) .doStuff () ersetzt. with this.doStuff (); und arbeitete
— Carlos López Marí

133

Wenn Sie von Contains finden, wird es so sein

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

Wenn Sie nach Starts With suchen, wird es so sein

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

Wenn Sie nach Ends With suchen, wird es so sein

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

Wenn Sie Elemente auswählen möchten, deren ID keine bestimmte Zeichenfolge ist

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

Wenn Sie Elemente auswählen möchten, deren Name ein durch Leerzeichen getrenntes Wort enthält

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

Wenn Sie Elemente auswählen möchten, deren ID einer bestimmten Zeichenfolge entspricht oder mit dieser Zeichenfolge gefolgt von einem Bindestrich beginnt

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

Hallo, wie kann ich mit einem Selektor die Elemente auswählen, deren ID zu einem Array gehört?
— bpa.mdl

20

Dies wählt alle DIVs mit einer ID aus, die 'foo' enthält und die sichtbar sind

$("div:visible[id*='foo']");

Wenn ich eher nach Textfeldelementen als nach Divs suche, ist es einfach $ ("Eingabe: sichtbar [id * = 'foo']"); ?
— user48408

es wäre $ ("input [type = 'textbox'] [id * = 'foo']: sichtbar")
— karim79

1
@ port-zero - die einfachen Anführungszeichen um 'foo' sind nicht erforderlich
— karim79

Wenn Sie versuchen, den Wert der Elemente (in meinem Fall überspannt) zu erhalten, müssen Sie$(this)[0].innerText
— Niklas

6

Danke euch beiden. Das hat bei mir perfekt funktioniert.

$("input[type='text'][id*=" + strID + "]:visible").each(function() {
    this.value=strVal;
});
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.