Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Append a entire div with all its elements using jquery

Using jQuery I want to append a entire div when a click event happens. I tried but it's not working.

When a user clicks the Add another image I want to append the entire div tag with all its elements.

Here is my code:

<form method="post" id="form_property" enctype="multipart/form-data">
    <div class="row">
        <div class="span4" id="image">
             <h3><strong>4.</strong> <span>Add Images to your Property</span></h3>

            <div class="fileupload fileupload-new control-group" data-provides="fileupload">
                <label class="control-label" for="inputPropertyPrice">Image files</label>
                <div class="input-append">
                    <div class="uneditable-input"> <i class="icon-file fileupload-exists"></i>
 <span class="fileupload-preview"></span>

                    </div> <span class="btn btn-file">
                                        <span class="fileupload-new">Select file</span>
 <span class="fileupload-exists">Change</span>

                    <input type="file" name="files1" accept="image/*" />
                    </span>
                </div>
            </div>
        </div>
        <!-- /.span4 -->
    </div>
    <!-- /.row -->
    <br/> <a id="another_image" class="btn btn-primary btn-small list-your-property" href="#">Add Another Image</a>
    <br/>
    <br/>
    <input type="submit" name="submit" value=" Save images " class="btn btn-primary btn-large" style="float: left; width: 370px; height: 50px; margin-top: 10px">
</form>

Jquery

    <script type="text/javascript">

    $(document).ready(function(){
        var count = 2;
        $('#another_image').click (function(){

            if(count < 7){
                $('<br/><br/>
                            <div class="input-append">
                                <div class="uneditable-input">
                                    <i class="icon-file fileupload-exists"></i>
                                    <span class="fileupload-preview"></span>
                                </div>
                                                    <span class="btn btn-file">
                                                        <span class="fileupload-new">Select file</span>
                                                        <span class="fileupload-exists">Change</span>
                                                        <input type="file" name="files'+ count +'" accept="image/*" />
                                                    </span>



                            </div>
                        ').appendTo ("#image");


            count++;
            }
        });
        });
    </script>

Can someone please help me to fix this?

like image 482
Sathya Baman Avatar asked Dec 08 '22 03:12

Sathya Baman


1 Answers

Use .appendTo() along with clone().

If you don't use clone() the same div will get replaced and nothing will be updated in the target. You don't need to type/copy the whole html.

Syntax : $(Element_Selector).appendTo(TargetSelector).


$($('.input-append').first().clone()).appendTo("#image");

Fiddle

*Note: Cloning existing html might create duplicate Ids. Take care of it.

like image 62
Shaunak D Avatar answered Dec 29 '22 14:12

Shaunak D