0
votes

Y a-t-il un meilleur moyen que le mien? Ajouter classe si les éléments ont le même attribut

Je veux ajouter une classe aux éléments avec un attribut spécifique.

J'ai essayé plusieurs fonctions telles que trouver () code> ou filtre () code> mais je ne peux pas Faites-le bien. P>

Quelqu'un pourrait-il me montrer une meilleure façon? p>

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="element">
  <div>
    <div class="b active-filter" data-filter="3">data-filter</div>
    <div class="b" data-filter="4">data-filter</div>
  </div>
  <div>
    <div class="c d" data-filter="3">data-element</div>
    <div class="c d" data-filter="4">data-element</div>
  </div>
</div>


5 commentaires

Qu'est-ce que a ? Avez-vous vraiment besoin d'une boucle?


Je pense que vous êtes au mauvais endroit. Il sera préférable de poser une question dans la section de révision du code codereview.stackexchange.com


Cette question devrait être affichée sur codereview.stackexchange.com


Vous avez raison. Je vais poster là-bas là-bas.


codereview.stackexchange.com / Questions / 210811 / ...


4 Réponses :



0
votes

Obtenez la valeur d'attribut de données à partir de $ (ceci) et trouvez l'élément avec l'élément correspondant et ajoutez la classe.

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="element">
  <div>
    <div class="b active-filter" data-filter="3">data-filter</div>
    <div class="b" data-filter="4">data-filter</div>
  </div>
  <div>
    <div class="c d" data-filter="3">data-element</div>
    <div class="c d" data-filter="4">data-element</div>
  </div>
</div>


0 commentaires

0
votes

Vous pouvez toujours utiliser une approche un peu fonctionnelle? Comme vous pouvez le constater, l'approche que j'ai utilisée, il y a juste une fonction qui décompose le problème assez bien, au moins à mon avis, plutôt que d'avoir une fonction plus grande, je préfère souvent avoir plusieurs fonctions plus petites sur une fonction plus grande, même Si cela prend plus d'espace ou autre chose.

Comme vous pouvez le constater, une fois que les éléments ont été cliqués, l'élément correspondant va dans la fonction code> processus code>, à partir de là, il suffit de déclencher le Removeclasses code> Fonction que je Ne pensez pas que j'ai besoin de clarifier son but. Ensuite, il incendiera addclasses code> et ajoutez la classe (ES) correspondante à l'élément (s) correspondant (s), c'est-à-dire. p>

edit h3>

Un point bonus du point de vue de l'efficacité est que cette solution ne utilise pas JQuery, et c'est juste un fait, avant que quiconque ne saute sur ce train, JQuery est plus lent. que d'utiliser des implémentations indigènes, mais d'être juste, la principale forte> focus forte> de jQuery n'est pas une performance, mais plutôt la compatibilité et la fiabilité. Je doute que la différence serait si grosse que vous obtiendriez une différence majeure, c'est-à-dire des utilisateurs qui se plaignent de la vitesse (s) de la vitesse (s), mais je pensais simplement que je jetterais ce point là-bas aussi. p>

p>

<div class="element">
  <div>
    <div class="b active-filter" data-filter="3">data-filter</div>
    <div class="b" data-filter="4">data-filter</div>
  </div>
  <div>
    <div class="c d" data-filter="3">data-element</div>
    <div class="c d" data-filter="4">data-element</div>
  </div>
</div>


0 commentaires

0
votes

Vous avez fait refroidir. Essayez celui-ci où vous n'avez pas besoin d'utiliser une boucle ou quoi que ce soit d'autre. xxx

magie de jQuery


0 commentaires