jquery insérer un bloc html il commence avant la cible et se termine après la cible - est-ce possible?
-
27-09-2019 - |
Question
Je comprends que vous pouvez ajouter insérer des blocs de html avant et après une cible à l'aide before()
, insertBefore()
, after()
et insertAfter()
.
J'ai essayé de faire quelque chose de similaire à ce
<script type="text/javascript">
$(document).ready(function(){
$("p").before("<div class='myContainer'>");
$("p").after("</div>");
});
</script>
<p>paragraph</p>
Mais le inject semble créer automatiquement la fermeture des balises pour moi, est-il un moyen de contourner cela?
Vive
La solution
Il y a une fonction pour cela :) Utilisez .wrap()
, comme ceci:
$("p").wrap("<div class='myContainer'>");
enveloppera chaque indépendant <p>
, vous pouvez voir une démo ici , il change ceci:
<p>Paragraph 1</p>
<p>Paragraph 2</p>
Dans ceci:
<div class='myContainer'>
<p>Paragraph 1</p>
</div>
<div class='myContainer'>
<p>Paragraph 2</p>
</div>
Autres conseils
Il suffit de mentionner que vous pouvez aussi le faire:
$myDiv = $("<div class='myContainer'></div>");
$("p").wrap($myDiv);
et puis de nouveau à une étoffe append plus tard à myDiv avec
$myDiv.append("This is going to be the text in myContainer");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow