2010-02-28 39 views
11

Bir jQuery değişkeni içinde depolanmış HTML'yi işlemeye çalışıyorum. Değişkeni belgeye yazmadan önce bu manipülasyonu yapmak istiyorum.Bir jQuery değişkeni içinde HTML nasıl kullanılır?

Yani, bir değişken olarak tanımlanan vardır:

var sighting = "<div><span class="feed_name"></span></div>"; 

Ve span eleman "Merhaba dünya" koymak istiyorum. <div id="sightings"></div> içine nişan değişkeninde HTML koyar

$(#sightings).append(sighting); 

:

Sonra
$(sighting).("span.feed_name").html(name); 

ben sayfaya 'nişan' değişkeni yazma: Bu benim alamayan parçası çalışmaktır sayfadaki öğe.

Herhangi bir yardım çok takdir edilecektir!

sayesinde

Mark

+3

'$ (nişan) ("span.feed_name") html (isim)' bile geçerli değil sözdizimi. Eğer html (isim) 'yi (" span.feed_name "). – jpsimons

cevap

4

bu deneyin:

var sighting = "<div><span class=\"feed_name\"></span></div>", 
    $elem = $(sighting).find("span.feed_name").text("hello world").parent(); 
$("#sightings").append($elem); 

parent çağrı dış div geri almak için gereklidir.

+0

LOL, ilk önce ve hatta aynı başlık ile "Bunu dene:": D (cevabım silindi) – Tronic

+1

Merhaba Gumbo, Yardımlarınız için teşekkürler! Diğer cevapla devam ettim, ama seninki de yardımcı oldu. - Mark – Mark

11

Bu yöntemi tercih ederim, elemanlar üzerinde daha fazla kontrole sahip olacaksınız, çünkü bunlar nesne olarak kalıyorlar ve böylece işlevlere zorlanmaları daha kolay oluyor. Zaten DOM

$(sighting).addClass("feed_name").html(name); 
$(sighting).appendTo("#sighting"); 

DÜZENLEME

Hmm bir parçasıydı sanki

sighting = document.createElement('div'); 

Sonra manipüle edebilir ... ben sorunuzu yanlış okumuş gibi görünüyor. Yine de elemanları createElement() işlevini kullanarak yapmayı tercih ederim.

sighting = document.createElement('div'); 
sighting_contents = document.createElement('span'); 

$(sighting_contents).addClass("feed_name").html(name); 
$(sighting).append(sighting_contents); 
$(sighting).appendTo("#sightings"); 

Biraz daha ayrıntılı, ancak dize isterseniz tek bir uzun hattına son üç ... Bu daha okunabilir olduğunu düşünüyorum ve teknik olarak yazmakta olmamalı çünkü sonuçta daha fazla kontrol sağlar olabilir js'nizde bir grup HTML oluşturabilir, onları oluşturabilir ve onları ekleyebilirsin, ama büyük bloklama blokları yazarken, elementleri bu gibi nesneler olarak yaratmanın daha fazla esneklik sağladığını düşünüyorum.

Ayrıca daha basit bir şekilde böyle eklenen öğelere olayları ekleyebilirsiniz.:.

$(sighting).bind("click", function(event) { 
    $(this).fadeOut(); 
}); 
+0

Merhaba Joseph, Cevabınız için teşekkürler! Bu, istediğim yaklaşım gibi geliyor, ancak yazdığım zaman: sighting1 = document.createElement ("

"); Ben js hatası alıyorum: Hata : yakalanmamış istisna: "5" nsresult: "0x80530005 (NS_ERROR_DOM_INVALID_CHARACTER_ERR)" konum: "http: //www.myurl [İstisna ... Kod "Dize geçersiz bir karakter içeriyor" .com Çizgi: 47 "] Bunun ne olabileceği hakkında bir fikriniz var mı? Teşekkür ederiz, Mark – Mark

+0

Evet, beklenen hata budur. İşlevdeki html'ye ihtiyacınız yoktur: 'document.createElement ('div'); HTML'yi bu işleve, yalnızca oluşturmak istediğiniz öğenin etiketine koyamazsınız. –

+0

A, görüyorum. İşe yaradı! Yardım ettiğin için teşekkür ederim. – Mark

İlgili konular