2

例Aのようにオブジェクトを作成すると、属性(id、classなど)は適用されません。要素は作成されていますが、属性がありません。オプション B は問題なく動作しますが、このSpped テストによると、25% 遅くなります。オプション A を使用して属性を適用する方法は? 結局可能ですか?すべてのスマートな回答に感謝します!

A:

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

B:

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 メソッドよりも高速になることはありません。

さらに重要なことは、ここでの速度はおそらくまったく重要ではないということです。これは何千回も実行されますか?そうでない場合は、ここで速度を気にする必要はありません。そしてまれに、それが重大な場合がありますが、バニラ JavaScript だけを使用した場合、オプション B よりも速くなることはありません。

于 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 に答える