2009-04-14 39 views
6

Yapmaya çalıştığım şey, jQuery'yi kullanarak bir tablo çağrı denetimi oluşturmaktır. Çok sayıda bağlantı ve genişlik içerir. Bunu düz bir dizgi birleştirmeyle yapmayı başardım, ancak jQuery'nin bunu daha zarif yapamayacağına inanamıyorum. jTemplates'i burada kullanamıyorum çünkü bu işlem oldukça yordamsal bir mantığa sahip.jQuery ile birden çok HTML öğesi nasıl oluşturulur?

Soru: jQuery ile bir dizi HTML öğesi oluşturmanın ve bunları bir kapsayıcıya eklemenin bir yolu var mı?

Teşekkürler.

cevap

22

$('First Element').add($('Second Element')).appendTo($('body'))

+0

Bu, 2009'da çalışmış olabilir, ancak bugün jQuery sürümüne bağlı bir hata iletisiyle başarısız oluyor. [JsFiddle] (https://jsfiddle.net/dtxg22oo/1/). Ne çalışır? $ ('Ilk'). Add ($ ('ikinci')). AppendTo (...) '. –

+1

Bunu test ettim ve @romkyns haklı. Cevabını buna göre düzenledim. – Timwi

5

daima append() yoktur.

$('#container').append('<span>foobar baz</span>'); 

Sadece muhtemelen en hızlı seçenek dize birleştirme kullanarak ve en az karmaşık olacağını eklemek ve bu gibi geliyor bana.

function elemCreate(type, content, attrs) { 
    /* type: string tag name 
    * content: string element content 
    * attrs: associative array of attrs and values 
    */ 
    elem = '<' + type + '></' + type + '>' 
    e = $(elem).attr(attrs) 
    e.append(content) 
    return e 
} 

stuff = [];  
stuff.push(elemCreate('a', 'Click me!', {'href': 'http://stackoverflow.com'}); 

$(stuff).appendTo($('#container')); 
+0

return e çalışmıyor benim için geri dönüş e [0] çalışıyor – Azd325

8

Yaylı Birleştirme (veya Array.join) olup: Bununla birlikte, aşağıdaki (muhtemelen) elementlerin üretimini kolaylaştırmak ve, belirli bir ana elemana bunları eklemek için izin verecek bir yol bir denenmemiş örnektir iyi, güzel yaptığınız sürece;)

var structure = [ 
    '<div id="something">', 
     '<span>Hello!</span>', 
    '</div>' 
]; 

$(structure.join('')).appendTo(container); 
İlgili konular