javascript - 使用 jQuery 创建 HTML 元素 : what’s the correct approach?

标签 javascript jquery html backbone.js

最近我做了一个Backbone tutorial over on Tuts+我看到了一种使用 jQuery 创建 HTML 元素的非常奇怪的方法,作者说要像这样创建它:

var select = $('</select>', {
    html: '<option value="all">All</option>'
});

但我认为这肯定是不正确的,所以我只是更改了 select元素没有正斜杠:

var select = $('<select>', {
    html: '<option value="all">All</option>'
});

所以在我完成教程后,我看了一下评论,一位评论者说应该这样写:

var select = $('<select/>', {
    html: '<option value="all">All</option>'
});

这也很好用,但我很困惑:三者之间有什么区别?我确信第一个( </select> )不起作用,但是使用 <select/> 的优点是什么?超过<select> ?它甚至有什么区别吗?

提前致谢。

最佳答案

列表中的第一个不起作用,其他两个的作用相同。

就我个人而言,我更喜欢使用<select>因为对我来说这是最具可读性的。如果您喜欢添加斜杠,那就这么做吧 - 它会工作得很好,这只是可读性的问题。

您还可以使用$("<select></select>")如果你愿意的话,尽管对我来说这又变得更困惑了。

此外,为了添加选项,最好像执行选择一样添加它们,而不是将原始 html 编码为字符串,例如:

var options = [];

for (var i = Options.length - 1; i >= 0; i--) {
    options.push($("<option>", {
       html: Options[i].Title,
       value: Options[i].Value
    }));
}

var select = $("<select>", {
    html: options,
    id: "OptionSelector"
});

正如下面 David 所指出的,$("<select>")根据文档,这是正确的方法,因此尽管在我的(有限的)测试中其他方法的行为正常,但最好还是这样做。

关于javascript - 使用 jQuery 创建 HTML 元素 : what’s the correct approach?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22435132/

相关文章:

javascript - FormData 发布到 Express 4.0 - 正文解析器不工作

javascript - 一次性解析 promise 单例(Angular 服务)

javascript - javascript - DOM 权限

html - 为什么我在 Godaddy 中的大图片无法显示?

html - 将div并排放置在固定宽度和高度的绝对div中

javascript - 如何有效地匹配两个不同的 javascript 对象上的 id 并将它们合并在一起?

javascript - 使用 jquery 捕获给定元素的所有事件(单击、更改、onmouseover 等)

jquery - 在 jasmine 测试中使用 React 组件触发 jQuery 事件,无需开玩笑

javascript - JQuery数据表列数据更新速度太慢

javascript - svg 倾斜矩阵/变换而不压扁线条