2

当我像示例 A 那样创建对象时,它不会应用任何属性(id、class 等...)。正在创建元素,但没有属性。选项 B 工作正常,但根据这个Spped 测试它慢了 25%。如何使用选项 A 应用属性?毕竟有可能吗?感谢所有聪明的答案!

A:

  var page = $(document.createElement("div"), {
         "id": "projects",
         "class": "page activePage"
    });

乙:

var page = document.createElement("div"); 
page.id = 'projects'; 
page.className = 'page activePage';
4

3 回答 3

2

第一个选项没有任何意义;这不是 jQuery 的工作方式(假设您因为$()构造而使用 jQuery)。在 jQuery 中,你会这样做:

var page = $('<div>').attr('id', 'projects').addClass('page').addClass('activePage');

还有其他方法可以通过 jQuery 完成此操作,但是您执行此操作的任何方式甚至都比上面的选项 B 慢,因为它基本上在幕后做与选项 B 相同的事情,周围有很多框架来减慢它的速度.

即使$引用不同的框架,同样适用——它不能比内置的 javascript 方法更快。

更重要的是:这里的速度很可能根本不重要。这会运行数千次吗?如果没有,这里不需要关心速度。在极少数情况下,它很重要,您不会比选项 B 更快,仅使用 vanilla javascript。

于 2012-11-25T13:32:08.160 回答
0

那么,为什么不直接使用呢?

编辑:

var page = '<div id:"projects" class:"page activePage"></div>'
var page = '<div id="projects" class="page activePage"></div>'

或者

document.createElement("div",{id:"projects",class:"page activePage"});

如果您正在创建静态数据,我首先建议您。

希望,它会帮助你。谢谢。!!

于 2012-11-25T13:44:48.523 回答
-1

我们可以使用 jquery 创建 div 元素,它不会导致任何性能问题,因为它不是基于 javascript

1. $("<div class='page activePage' id ='projects'></div>")

2. $('<div>').attr('id', 'projects').addClass('page').addClass('activePage');

谢谢

于 2012-11-25T13:59:19.403 回答