SORU
2 Mayıs 2009, CUMARTESİ


Ekleme JavaScript ile HTML elemanları

Aşağıdaki sözdizimini kullanarak, her bir öznitelik türü için geçici çözümler aramak yerine tediously ve olay:

   elem = document.createElement("div");
   elem.id = 'myID';
   elem.innerHTML = ' my Text '
   document.body.insertBefore(elem,document.body.childNodes[0]);

Sadece bir dize tüm HTML öğesi ilan edebileceğim bir yol var mı? gibi:

  elem = document.createElement("<div id='myID'> my Text </div>");
  document.body.insertBefore(elem,document.body.childNodes[0]);

CEVAP
2 Mayıs 2009, CUMARTESİ


Doğrudan ile uğraşmak yerineinnerHTMLdaha iyi bir parça oluşturmak ve bu tablo, daha sonra olabilir:

function create(htmlStr) {
    var frag = document.createDocumentFragment(),
        temp = document.createElement('div');
    temp.innerHTML = htmlStr;
    while (temp.firstChild) {
        frag.appendChild(temp.firstChild);
    }
    return frag;
}

var fragment = create('<div>Hello!</div><p>...</p>');
// You can use native DOM methods to insert the fragment:
document.body.insertBefore(fragment, document.body.childNodes[0]);

Faydaları:

  1. İnsertBefore gibi ekleme için yerel DOM yöntemleri, appendChild vb kullanabilirsiniz.
  2. Eklenen onlar önce gerçek DOM düğümlerine erişim var. bu parçanın childNodes nesne erişebilirsiniz.
  3. Belge parçaları kullanarak çok hızlı; daha hızlı bazı durumlarda DOM dışında ve elementler oluşturarak daha hızlı innerHTML daha.

< / ^ hr .

Olsa bileinnerHTMLişlev içinde kullanılan tüm sandığınızdan çok daha hızlı bu yüzden DOM dışında gerçekleşiyor

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andrew_Huang

    Andrew_Huang

    10 ŞUBAT 2006
  • FASHTAG

    FASHTAG

    5 EYLÜL 2012
  • WiseOwlTutorials

    WiseOwlTutor

    21 EKİM 2011