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.