jQuery - Vérifier si le contenu de la balise est égal à sometext de faire quelque chose
Disons que j'ai beaucoup de ceux-ci dans le contenu de mon div
: <cite class="fn">blabla</cite>
Comment puis-je vérifier chaque cite
de la balise contenu (dans ce cas: blabla
) avec la classe fn
pour voir si elle est égale à "sometext", puis changer de couleur rouge ?
Très simple.
OriginalL'auteur xperator | 2011-12-22
Vous devez vous connecter pour publier un commentaire.
Edit: mais qui va correspondre à "blablablabla".
Qui devrait être plus précise.
Edit: en Fait, je pense que bazmegakapa la solution est plus élégante:
<cite class="fn">textblabla</cite>
, ce qui peut causer des problèmes si le terme de recherche peut facilement être une sous-chaîne.OriginalL'auteur powerbuoy
Vous pouvez faire usage de l'incroyable
.filtre()
méthode. Il peut prendre une fonction comme paramètre, ce qui permettra de réduire le jQuery collection d'éléments à ceux qui passent son test (pour lesquels la fonction renvoie la valeur true). Après cela, vous pouvez facilement exécuter des commandes sur les éléments restants:jsFiddle Démo
$("cite.fn:contains('"+searchText+"')").filter(function(){return $(this).text().length==searchText.length});
Je ne dirais pas que c'est mieux.
:contains()
n'est pas un standard du sélecteur, de sorte que jQuery a l'utilisation de son propre moteur, pas le plus rapide de la langue maternelle (qu'il utilise normalement). Donc, ce que vous gagnez d'un côté, vous perdez de l'autre. Vous pourriez faire un jsPerf de référence et poste le résultat ici.Bon, le test est-il (vous pouvez vérifier le lien et de corriger le test si mal). La pré-sélection de la stratégie n'est pas bonne, votre code d'origine est plus rapide.
Test de Nice. Fondamentalement, c'est pourquoi vous ne devriez pas utiliser non-standard sélecteurs jQuery la plupart du temps. Si le natif
querySelectorAll()
prend en charge le sélecteur, il est beaucoup plus rapide.OriginalL'auteur kapa
Vous pourriez faire quelque chose comme:
Il déclenche une fonction à l'encontre de chaque
cite
qui a la classefn
. Cette fonction vérifie si le courantcite
's la valeur est égale à "sometext'.Si c'est le cas, alors nous changer le CSS
color
(texte en couleur) la propriété dered
.Note je suis à l'aide de jQuery dans cet exemple, comme vous l'avez spécifiquement étiquetés à votre question
jQuery
. Ignorer le downvote, cela a été appliqué avant, j'ai corrigé une faute de frappe que j'avais fait (el.val()
plutôt queel.text()
)Vous avez raison avec la première partie. Pour la deuxième partie... vous pouvez toujours modifier votre commentaire. jQuery rend personne stupide.
n'utilisant javascript natif de vous faire arrogant alors?
Tous les sites que j'ai vu qui a été faite à l'aide de jQuery pourrait être fait travailler une centaine de fois plus rapidement et plus efficacement sans elle [hausse les épaules] de toute façon, je suis sûr que quelqu'un downvoted ma réponse juste à cause de mon commentaire, qui est réel mature [/sarcasme] Ma réponse œuvres, et n'a pas de dépendances.
Après votre premier commentaire vous sembler assez drôle quand vous parlez de vous être mature :). jQuery est un formidable outil lorsque vous l'utilisez à droite. Si vous êtes un mauvais programmeur, vous pouvez écrire de mauvais programmes à la vanille, avec JS. Le problème n'est pas avec jQuery. (BTW, je ne vois pas de downvotes sur votre réponse)
OriginalL'auteur isNaN1247
Sans jQuery:
OriginalL'auteur Niet the Dark Absol