Javascript 创建元素问题

标签 javascript performance createelement

当我像示例 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/

相关文章:

java - 写入 Lucene 索引,一次一个文档,随着时间的推移变慢

algorithm - 64位整数和64位浮点同构表示

javascript - 在 JavaScript 中创建元素或在 CSS 中隐藏元素

javascript - react native : panresponder native event identifier undefined

javascript - 将 host 属性添加到生成的 DOM 元素

javascript - java脚本代码用于防止用户在没有chrome中的警告消息的情况下关闭浏览器

javascript - 在 jQuery 中跨多个元素插入多个值

MySQL索引位于where子句和order by子句之间

javascript - JQuery如何在创建的元素中创建元素

javascript - 为通过 .createElement ('div' 创建的 div 的所有元素设置样式