Skip to content

Instantly share code, notes, and snippets.

@384400
Last active January 19, 2016 10:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 384400/76f68a2f5f1b7f0ebd3f to your computer and use it in GitHub Desktop.
Save 384400/76f68a2f5f1b7f0ebd3f to your computer and use it in GitHub Desktop.
[JavaScript] [jQuery] [PHP] Trouver une classe associée à une autre classe

Comment identifier une deuxième classe associée à une première classe avec jQuery ?

Par exemple, nous voulons connaître la classe associée à la classe foo.

L'intérêt peut être multiple...

À titre d'illustration, nous générons une liste de choix avec Hypertext Preprocessor (Php) à partir de la saisie d'un utilisateur, qui est envoyée par Asynchronous JavaScript And Xml (Ajax). Nous voulons conserver un identifiant pour sécuriser la transaction suivante.

<?php
/* ... */
$_SESSION['nonce'] =  md5(rand(1000, 9));
/* ... */
$out .= "\t\t".'<input type="radio" class="add '.$_SESSION['nonce'].'" name="article" value="'.$article['code'].'" id="article-'.$count.'"><label for="article-'.$count.'">'.$data['article'].'</label>'. "\n";
/***/
?>
<script>
/***/
jQuery(document).on('click', '.add', function() {
/***/
var nonce = $('.add').attr('class').split(' ')[1];
/***/
var formSelectArticle  = 'article=' + article + '&nonce=' + nonce + '&action=' + actionSelectArticle;
});
/***/
</script>

Attention ! pour capturer la classe avec jQuery, nous recourons à la méthode .delegate() en utilisant jQuery(document).on('click', '.add', function() et pas à la méthode directe .on() en utilisant jQuery('.add').on('click', function() : en effet, ces éléments n'existent pas dans le Document Object Model (Dom) lors du chargement de la page dans le navigateur.

Voici une démonstration : JsFiddle.

<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Comment identifier une deuxième classe associée à une première classe avec jQuery ?</title>
<meta name="description" content="Comment connaître la deuxième classe associée à une première classe avec jQuery ?" />
</head>
<body>
<div class="foo bar">Foo, bar</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
jQuery(document).ready(function ($) {
jQuery('.foo').on('click', function() {
var targetClass = $('.foo').attr('class').split(' ')[1];
alert(targetClass);
});
});
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment