Rechercher tous les éléments sur une page dont l'ID d'élément contient un certain texte à l'aide de jQuery


Réponses:


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

Notez que l'astérisque «*» au début du sélecteur correspond à tous les éléments .

Voir l' attribut contient des sélecteurs , ainsi que les sélecteurs : visible et : hidden .


17
Il vaut peut-être la peine de mentionner que lorsque vous comparez avec un élément, idvous n'utilisez pas de guillemets, alors que lorsque vous comparez avec un, namevous le faites. $('*[name*="myname"]:visible') Pas le plus intuitif et m'a rattrapé avant.
ficuscr

J'ai remplacé $ (this) .doStuff (); avec this.doStuff (); et travaillé
Carlos López Marí

133

Si vous trouvez par Contient, ce sera comme ça

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

Si vous trouvez par commence par alors ce sera comme ça

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

Si vous trouvez par Ends With alors ce sera comme ça

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

Si vous souhaitez sélectionner des éléments dont l' id n'est pas une chaîne donnée

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

Si vous souhaitez sélectionner des éléments dont le nom contient un mot donné, délimité par des espaces

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

Si vous souhaitez sélectionner des éléments dont l' id est égal à une chaîne donnée ou commençant par cette chaîne suivie d'un trait d'union

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

Bonjour, comment puis-je utiliser un sélecteur pour sélectionner les éléments dont l'id appartient à un tableau.
bpa.mdl

20

Ceci sélectionne toutes les DIV avec un ID contenant 'foo' et qui sont visibles

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

Si je recherche des éléments de zone de texte plutôt que des divs, est-ce simplement $ ("input: visible [id * = 'foo']"); ?
user48408

ce serait $ ("input [type = 'textbox'] [id * = 'foo']: visible")
karim79

1
@ port-zero - les guillemets simples autour de 'foo' ne sont pas nécessaires
karim79

si vous essayez d'obtenir la valeur des éléments (dans mon cas, des travées), vous devez obtenir$(this)[0].innerText
Niklas le

6

Merci à vous deux. Cela a parfaitement fonctionné pour moi.

$("input[type='text'][id*=" + strID + "]:visible").each(function() {
    this.value=strVal;
});
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.