当我像示例 A 一样创建对象时,它不会应用任何属性(id、类等...)。 正在创建元素但没有属性。选项 B 工作正常,但根据此 Spped tests它慢了 25%。如何使用选项 A 应用属性?毕竟有可能吗?感谢所有聪明的答案!
答:
var page = $(document.createElement("div"), {
"id": "projects",
"class": "page activePage"
});
乙:
var page = document.createElement("div");
page.id = 'projects';
page.className = 'page activePage';
最佳答案
第一个选项没有任何意义;这不是 jQuery 的工作方式(假设您因为 $()
构造而使用 jQuery)。在 jQuery 中,您可以这样做:
var page = $('<div>').attr('id', 'projects').addClass('page').addClass('activePage');
还有其他方法可以通过 jQuery 完成此操作,但您采用的任何方式甚至会比上面的选项 B 慢,因为它基本上在幕后做与选项 B 相同的事情,有很多框架围绕它放慢速度。
即使 $
指的是不同的框架,同样适用——它不会比内置的 javascript 方法更快。
更重要的是:这里的速度很可能根本不重要。这会运行数千次吗?如果没有,这里不需要关心速度。在极少数情况下,它很重要,您不会比选项 B 更快,仅使用普通 javascript。
关于Javascript 创建元素问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13551467/