J'essaie de trouver tous les éléments d'une page dont l'ID d'élément contient un certain texte. J'aurai ensuite besoin de filtrer les éléments trouvés en fonction de leur masquage ou non. Toute aide est grandement appréciée.
$('*[id*=mytext]:visible').each(function() {
$(this).doStuff();
});
Notez l'astérisque '*' au début du sélecteur correspond à tous les éléments .
Voir les l'attribut contient les sélecteurs , ainsi que les sélecteurs : visible et : caché .
Si vous trouvez par contient alors ce sera comme ça
$("input[id*='DiscountType']").each(function (i, el) {
//It'll be an array of elements
});
Si vous trouvez par commence avec alors ce sera comme ça
$("input[id^='DiscountType']").each(function (i, el) {
//It'll be an array of elements
});
Si vous trouvez par termine par alors ce sera comme ça
$("input[id$='DiscountType']").each(function (i, el) {
//It'll be an array of elements
});
Si vous voulez sélectionner des éléments qui 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 voulez sélectionner des éléments qui id contient un mot donné, délimité par des espaces
$("input[id~='DiscountType']").each(function (i, el) {
//It'll be an array of elements
});
Si vous voulez sélectionner des éléments qui 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
});
Ceci sélectionne toutes les DIV avec un ID contenant 'foo' et qui sont visibles
$("div:visible[id*='foo']");
Merci à vous deux. Cela a parfaitement fonctionné pour moi.
$("input[type='text'][id*=" + strID + "]:visible").each(function() {
this.value=strVal;
});