javascript - Jquery创建没有结束标签的元素
问题描述
在我的用例中,我需要使用 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
执行之后。我怎样才能避免这种情况?
解决方案
元素没有标签。它们本身就是完整的对象。
标签用于在 HTML 中创建元素。
jQuery 允许您使用 HTML 语法来创建元素,但这只是一种抽象。jQuery 不会在内存中保留 HTML 字符串并允许您对其进行修改。它正在处理整个元素。
如果要处理 HTML 字符串,则需要处理字符串而不是 jQuery。
不过最好使用元素。$()
用and not创建 div append()
。将孩子添加到其中。将其附加到父元素。
function createRow(divName) {
var row = $("<div />");
row.addClass("row");
$("#"+ divName).append(div);
return row;
}
推荐阅读
- javascript - 如何使用 CSS 或 JS 使图像在多个分区上粘贴到所需的长度?
- spartacus-storefront - 用于 ASM 实施参考的 Spartacus SAML 单点登录
- javafx - 在 javafx HtmlEditor 中,java 虚拟键盘输入键不起作用
- ios - AFNetworking 崩溃问题 AFHTTPSessionManager.m ios Objective c
- reactjs - 如何在 Django+React 应用程序中显示外键模型中的特定字段?
- powerbi - 以前所有年份的平均每年
- flutter - 用于空值的空检查运算符 - MaterialApp
- android - 您无法推出此版本,因为它不允许任何现有用户升级新添加的 Apk Play 控制台
- c# - Xamarin Forms ViewModel 绑定/多个绑定对象
- google-analytics - 如果我不直接转到 wix 网站的页面网址,Google 跟踪代码管理器标签不会触发