2009-02-25 5 views
72

divにチャンクを挿入しようとしています。私は、単純なJavaScriptの方法がjQueryを使うよりも速いかどうかを見たいと思っています。残念ながら、私はそれを「古い」方法でやるのを忘れていました。 :PdivにHTMLを挿入する

var test2 = function(){ 
    var cb = function(html){ 
     var t1 = document.getElementById("test2"); 
     var d = document.createElement("div"); 
     d.id ="oiio"; 
     d.innerHtml = html; 
     t1.appendChild(d); 
     console.timeEnd("load data with javascript"); 
    }; 
    console.time("load data with javascript"); 
    $.get("test1.html", cb); 
} 

私はここで間違っていますか?

編集
誰かが尋ねた、より高速なjqueryのか、無地のjsであるので、私は、テストまで書いた:

+0

これより速いのはどれですか?プレーンなjavascriptまたはjquery? – Ali

+1

@Ali:jsの方が速いです。私の編集を参照してください。 – mkoryak

答えて

105

私は、これは何だと思います
http://jsperf.com/html-insertion-js-vs-jquery

無地のjsを10%高速化されます必要:

document.getElementById('tag-id').innerHTML = '<ol><li>html data</li></ol>'; 

すべてのタイプのタグでは、innerHTMLにアクセスできませんIEを使用します。 (テーブル要素など)

+20

IEの互換性に言及して+1してみてください。 – Enrico

40

JQueryを使用すると、そのブラウザの不一致が処理されます。 jQueryライブラリがプロジェクトに含めると、単に書く:

$('#yourDivName').html('yourtHTML'); 

あなたはまた、使用することを検討してください可能性があります

$('#yourDivName').append('yourtHTML'); 

これは、選択したdiv要素内の最後の項目としてあなたのギャラリーを追加します。または:

これは、選択したdivの最初の項目として追加します。

、これらの機能のためのjQueryのドキュメントを参照してください:

+12

OPは特にプレーンなjavascriptを求めましたが、これが助けになりました。 – doubleJ

+0

長い文字列のHtmlが挿入された例を見るのに役立ちます。たとえば、サーバーテクノロジー(PHPなど)が許可されていないケースがあり、同じページ内で約20行のhtmlを再利用したいと考えています。 –

18

私はHTMLにdiv要素を挿入するには、 "+"(プラス)を使用して:

document.getElementById('idParent').innerHTML += '<div id="idChild"> content html </div>';

このヘルプが必要です。

+2

+ =答えてくれてありがとう、それは私に多くの頭痛を救った。 –

+1

@MichaelTunnellそれは本当にした – divine

7

多くの行がこのように表示されることがあります。ここのhtmlはサンプルのみです。

var div = document.createElement("div"); 

div.innerHTML = 
    '<div class="slideshow-container">\n' + 
    '<div class="mySlides fade">\n' + 
    '<div class="numbertext">1/3</div>\n' + 
    '<img src="image1.jpg" style="width:100%">\n' + 
    '<div class="text">Caption Text</div>\n' + 
    '</div>\n' + 

    '<div class="mySlides fade">\n' + 
    '<div class="numbertext">2/3</div>\n' + 
    '<img src="image2.jpg" style="width:100%">\n' + 
    '<div class="text">Caption Two</div>\n' + 
    '</div>\n' + 

    '<div class="mySlides fade">\n' + 
    '<div class="numbertext">3/3</div>\n' + 
    '<img src="image3.jpg" style="width:100%">\n' + 
    '<div class="text">Caption Three</div>\n' + 
    '</div>\n' + 

    '<a class="prev" onclick="plusSlides(-1)">&#10094;</a>\n' + 
    '<a class="next" onclick="plusSlides(1)">&#10095;</a>\n' + 
    '</div>\n' + 
    '<br>\n' + 

    '<div style="text-align:center">\n' + 
    '<span class="dot" onclick="currentSlide(1)"></span> \n' + 
    '<span class="dot" onclick="currentSlide(2)"></span> \n' + 
    '<span class="dot" onclick="currentSlide(3)"></span> \n' + 
    '</div>\n'; 

document.body.appendChild(div); 
関連する問題