J'ai quelques coursjquery comment sélectionner tous les éléments de classe commencent par "texte-"?
.text-1
.text-2
.text-3
Je veux les sélectionner, comment faire? Merci pour l'aide
J'ai quelques coursjquery comment sélectionner tous les éléments de classe commencent par "texte-"?
.text-1
.text-2
.text-3
Je veux les sélectionner, comment faire? Merci pour l'aide
Essayez ceci. Pour plus de détails, voir jquery selectors
$('*[class^="text"]')
$('#qvDetails,#qvAdd,.qvFramedActive,#qvMoreSizes').live('mouseover',function(){
$(this).addClass('qvHover');
});
exemple d'un de mes projects.you peut citer les deux divs et les classes ensemble comme ci-dessus
vous pouvez fournir en classe séparée de coma ou divs dans le même ...
Voici une fonction qui traite de la question de plusieurs classes, dans des cas comme <div class="foo bar barfood">
:
function classStartsWith(str) {
return $('div').map(function(i,e) {
var classes = e.className.split(' ');
for (var i=0, j=classes.length; i < j; i++) {
if (classes[i].substr(0, str.length) == str) return e;
}
}).get();
}
La fonction retourne un tableau de correspondance des éléments DOM. Vous pouvez l'utiliser ainsi:
$(classStartsWith('text-')).doSomething();
Voici un exemple: http://www.jsfiddle.net/Ms6ey/3/
Bien sûr, cela suppose que le sélecteur 'div'
. La question semble concerner n'importe quel élément. Il est assez facile de faire en sorte que la fonction prenne un sélecteur comme un autre argument, et l'utilise à la place du codé en dur dans l'exemple.
Vous ne devez pas nécessairement spécifier astérisque *
, vous pouvez le faire aussi:
$('[class^="text-"]')
Notez l'ajout de -
après text
quelque chose que vous recherchez. Pour plus d'informations, consultez le jQuery starts with selector.
est ici une tentative d'une solution qui est à la fois précis et pas trop lent:
var elts = $('*[class*="text-"]')
.filter(function() {
return this.className.match(/(?:^|\s)text-/);
});
qui fonctionne en utilisant le (je l'espère) code Sizzle rapide pour trouver des éléments qui ont « texte- » partout dans leur class
attribut , puis appelle une fonction sur chacun d'eux pour les filtrer vers ceux qui ont réellement "text-" au début d'un nom de classe.
+1 Bonne réponse. En outre, c'est plus rapide que la solution que j'avais, qui utilisait jQuery pour obtenir les noms des classes. Bon travail. –
Ceci est la bonne réponse! – Ejaz
L'attribut class prend une liste séparée par des espaces des classes; cela échouera sur 'class =" foo text-1 bar "' – Quentin
Ensuite, nous pouvons utiliser $ ('* [class * = "text"]'). ceci recherchera le texte en tant que sous-chaîne dans l'attribut class. Ref: http://api.jquery.com/attribute-contains-selector/ –
@Chinmayee Cela va correspondre à tort quelque chose comme «sometext» – Phil