jQuery创建元素而不关闭标签

时间:2019-03-14 15:10:57

标签: javascript jquery html dom

在我的用例中,我需要使用jquery动态构建一些HTML。

我从此功能开始:

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 个答案:

答案 0 :(得分:2)

元素没有标签。它们本身就是完整的对象。

标记用于在HTML中创建元素。

jQuery允许您使用HTML语法创建元素,但这只是一个抽象。 jQuery不会在内存中保留HTML字符串,您可以对其进行修改。它正在处理整个元素

如果要使用HTML字符串,则需要处理字符串而不是jQuery。

最好使用元素。使用$()而不是append()创建div。给它添加孩子。将其附加到父元素。

function createRow(divName) {
     var row = $("<div />");
     row.addClass("row");
     $("#"+ divName).append(div);
     return row;
}