在我的用例中,我需要使用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
之后。
如何避免这种情况?
答案 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;
}