Ajouter une nouvelle classe et des attributs à div s'il existe sur la page

Duplication possible:
Comment ajouter une nouvelle classe et des attributs à div s'il existe sur la page

J'ai besoin de code JavaScript sur ma page maître qui essaie de trouver si un div existe. Si c'est le cas, il devrait ajouter une nouvelle classe et ajouter un nouvel attribut id. Par exemple, si la page possède cette div:

<div class="toplink">abc..</div> 

Alors, le code JavaScript devrait le faire exactement comme ceci:

 <div class="toplink adin" data-aid="114">abc..</div> 

Le code à l'intérieur du div devrait rester le même.

J'ai essayé ce code mais cela ne fonctionne pas

  <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.js" type="text/javascript"> if ($('.toplink').exists()) { $('.toplink').addClass('adin').attr('data-aid', '114'); } </script> 

Quelle est la faute de ce code? Qu'est-ce que j'ai placé ce code, dans l'en-tête sur pied de page? Puis-je faire cela avec javascript, pas jquery

Essayez la propriété $ (). Length à la place, et placez cet extrait au bas de la page, avant de fermer l'étiquette du corps

 <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.js" type="text/javascript"></script> <script type="text/javascript"> jQuery(document).ready(function($) { if ($('.toplink').length > 0) { $('.toplink').addClass('adin').attr('data-aid', '114'); } }); </script> 

Au lieu de

 .attr('data-aid','114') 

Utilisez la méthode .data :

 .data('aid','114') 

http://api.jquery.com/data

Votre code est probablement en cours d'exécution avant que le DOM ne soit prêt. Enrouler comme suit:

 $(function() { $('.toplink').addClass('adin').attr('data-aid', '114'); });