WordPress : Trouvez un div avec une certaine classe et ajoutez du HTML après et avant (avec PHP!)
J’ai le problème suivant – Comment trouver un div avec la classe « test » et ajouter » </div>
» avant et » <div class="sth">
» après . Exemple plus détaillé :
<!-- The original code -->
<div class="parent">
...here we can have some more content...
<div class="test"></div>
</div>
<!-- The thing that I want to achieve -->
<div class="parent">
...here we can have some more content...
</div>
<div class="test"></div>
<div class="sth">
</div>
J’ai essayé avec javascript/jQuery mais sans succès, car il est généré dans DOM. J’ai donc décidé de le faire avec quelque chose qui fonctionnera dessus avant de montrer le contenu.
Des idées sur la façon d’accomplir cela?
(Le contenu sera généré par les publications WordPress, si cela peut vous aider…)
ps Désolé pour mon mauvais anglais
Solution n°1 trouvée
Vous avez dit que vous avez essayé jQuery
sans succès. Mais peut-être que vous voulez essayer cette approche réussie :
$('.test').wrap('<div class="sth"></div>');
N’oubliez pas de l’exécuter lorsque le DOM est prêt :
$(function() {
$('.test').wrap('<div class="sth"></div>');
});
Solution n°2 trouvée
Utilisez votre code ici jsu avant la fin de la balise body,</body>
jQuery(document).ready(function($) {
// Inside of this function, $() will work as an alias for jQuery()
// and other libraries also using $ will not be accessible under this shortcut
$( ".test" ).insertAfter( ".parent" );
});
Ce wrapper entraînera l’exécution de votre code lorsque le DOM sera entièrement construit. Si, pour une raison quelconque, vous souhaitez que votre code s’exécute immédiatement au lieu d’attendre l’événement DOM ready, vous pouvez utiliser cette méthode wrapper à la place :
(function($) {
// Inside of this function, $() will work as an alias for jQuery()
// and other libraries also using $ will not be accessible under this shortcut
$( ".test" ).insertAfter( ".parent" );
})(jQuery);
Réf : http://codex.wordpress.org/Function_Reference/wp_enqueue_script
http://jsfiddle.net/itsazzad/wW4Pv/1/
Solution n°3 trouvée
JavaScript :
var page = document.documentElement.InnerHTML;
document.documentElement.InnerHTML = page.replace("<div class="test">","</div><div class="test"><div class="sth">");
0 commentaire