Jquery создать элемент без закрывающего тега - PullRequest
1 голос
/ 14 марта 2019

В моем случае мне нужно динамически построить какой-то фрагмент HTML с использованием jquery.

Я начинаю с этой функции:

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

Затем я приступаю к этой функции:

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

Затем я добавляю некоторые другие элементы, прежде чем захочу закрыть строку в следующем разделе:

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

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

Однако Jquery, похоже, сам добавляет закрывающие теги. Что портит мой код.

Я получаю этот HTML:

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

После выполнения моей первой функции createSection. Как я могу избежать этого?

1 Ответ

2 голосов
/ 14 марта 2019

Элементы не имеют тегов.Они сами по себе являются целыми объектами.

Теги используются для создания элементов в HTML.

jQuery позволяет использовать синтаксис HTML для создания элементов, но это всего лишь абстракция.jQuery не хранит строку HTML в памяти и позволяет вам изменять ее.Он имеет дело с целыми элементами .

Если вы хотите работать со строкой HTML, вам нужно иметь дело со строкой, а не с jQuery.

Это лучшеработать с элементами, хотя.Создайте div с помощью $(), а не append().Добавьте детей к этому.Добавьте его к родительскому элементу.

function createRow(divName) {
     var row = $("<div />");
     row.addClass("row");
     $("#"+ divName).append(div);
     return row;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...