Robert Granlund
asked on
jQuery Add HTML before and after
I want to add html to a page before and after certain div's.
As you can see I added the closing div after: $(".email_text").after
But that does not work. <div class='personal-info-cont' ></div> automatically closes itself when I do it this way.
And The closing div here ($(".email_text").after("< div class='suffix_text_wccpf_f ields'><bu tton id='personal_info_next' type='button'>NEXT</div></ div>");) Does not show up.
I want to surround a few fields on a form with a div that I can hide.
<script>
$(document).ready(function () {
$("#personal_information").before("<div class='personal-info-cont'>");
$(".email_text").after("<div class='suffix_text_wccpf_fields'><button id='personal_info_next' type='button'>NEXT</div></div>");
// AND I HAVE TRIED
$("<div class='personal-info-cont'>").insertBefore("#personal_information");
$("<div class='suffix_text_wccpf_fields'><button id='personal_info_next' type='button'>NEXT</div></div>").insertAfter(".email_text");
As you can see I added the closing div after: $(".email_text").after
But that does not work. <div class='personal-info-cont'
And The closing div here ($(".email_text").after("<
I want to surround a few fields on a form with a div that I can hide.
check this one too...
https://jsfiddle.net/fp8vxs3w/
the issue is you cannot add partial element like that...
when you add "<div class='personal-info-cont' >" the actually it is added as "<div class='personal-info-cont' ></div>"
https://jsfiddle.net/fp8vxs3w/
the issue is you cannot add partial element like that...
when you add "<div class='personal-info-cont'
but you can do this if your structure is something like this:
and after code runs
<div id="container">
<div id=personal_information>#personal_information</div>
<div class=email_text>.email_text</div>
</div>
var div = $("<div class='personal-info-cont'><div class='suffix_text_wccpf_fields'><button id='personal_info_next' type='button'>NEXT</button></div></div>")
var pi = $("#personal_information").detach();
var et = $(".email_text").detach();
div.prepend(pi);
div.prepend(et);
$("#container").prepend(div);
and after code runs
<div id="container">
<div class="personal-info-cont">
<div class="email_text">.email_text</div>
<div id="personal_information">#personal_information</div>
<div class="suffix_text_wccpf_fields">
<button id="personal_info_next" type="button">NEXT</button>
</div>
</div>
</div>
https://jsfiddle.net/n3o17onw/
oops, we need to add personal_info first then email_text
before
code
after
demo
https://jsfiddle.net/HainKurt/8m2afe2v/
before
<div id="container">
<div id=personal_information>#personal_information</div>
<div class=email_text>.email_text</div>
</div>
code
var div = $("<div class='personal-info-cont'><div class='suffix_text_wccpf_fields'><button id='personal_info_next' type='button'>NEXT</button></div></div>")
var pi = $("#personal_information").detach();
var et = $(".email_text").detach();
div.prepend(et);
div.prepend(pi);
$("#container").prepend(div);
after
<div id="container">
<div class="personal-info-cont">
<div id="personal_information">#personal_information</div>
<div class="email_text">.email_text</div>
<div class="suffix_text_wccpf_fields">
<button id="personal_info_next" type="button">NEXT</button>
</div>
</div>
</div>
demo
https://jsfiddle.net/HainKurt/8m2afe2v/
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
@Julian, what about when there are multiple div's that I want to wrap in one container?
Like:
Like:
<div id="first_name">FN</div>
<div id="middle_name">MN</div>
<div id="last_name">LN</div>
// So It looks like this after the script runs
<div class='personal-info-cont'>
<div id="first_name">FN</div>
<div id="middle_name">MN</div>
<div id="last_name">LN</div>
</div>
ASKER
.wrapAll is what I was looking for. Thanks Julian
You are welcome
https://jsfiddle.net/z3b6fwtd/
is this what you want?