Dalam kasus penggunaan saya, saya perlu membuat beberapa bagian HTML secara dinamis menggunakan jquery.

Saya mulai dengan fungsi ini:

function createSection(divName) {
    $("#"+ divName).append("<section id='team' class='pb-5'>\
        <div class='container'>");    
}

Kemudian saya melanjutkan dengan fungsi ini:

function createRow(divName) {
     $("#"+ divName).append("<div class='row'>");
}

Kemudian saya menambahkan beberapa elemen lain sebelum saya ingin menutup baris di bagian seperti ini:

    function closeRow(divName) {
    $("#"+ divName).append("</div>");
}   

function closeSection(divName) {
    $("#"+ divName).append("</div></section>");
}     

Namun, Jquery tampaknya menambahkan tag penutup itu sendiri. Yang mengacaukan kode saya.

Saya mendapatkan html ini:

<section id="team" class="pb-5">
        <div class="container">
        </div>   </section>

Setelah fungsi pertama saya createSection dijalankan. Bagaimana saya bisa menghindari ini?

1
hacking_mike 14 Maret 2019, 18:10

1 menjawab

Jawaban Terbaik

Elemen tidak memiliki tag. Mereka adalah objek utuh dalam hak mereka sendiri.

Tag digunakan untuk membuat elemen dalam HTML.

JQuery memungkinkan Anda menggunakan sintaks HTML untuk membuat elemen, tetapi ini hanyalah abstraksi. jQuery tidak menyimpan string HTML dalam memori dan memungkinkan Anda untuk memodifikasinya. Ini berurusan dengan seluruh elemen.

Jika Anda ingin bekerja dengan string HTML, maka Anda harus berurusan dengan string dan bukan jQuery.

Lebih baik bekerja dengan elemen. Buat div dengan $() dan bukan append(). Tambahkan anak-anak ke dalamnya. Tambahkan ke elemen induk.

function createRow(divName) {
     var row = $("<div />");
     row.addClass("row");
     $("#"+ divName).append(div);
     return row;
}
2
Quentin 14 Maret 2019, 15:24