jquery insérer un bloc html il commence avant la cible et se termine après la cible - est-ce possible?

StackOverflow https://stackoverflow.com/questions/3044213

  •  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

Était-ce utile?

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
scroll top