JS

2010-11-19 17 views
9

'da aynı düğüme sahip birden çok kez appendChild'i birden çok derecelendirme içeren bir form için bir form doğrulama komut dosyası yazıyorum ve "derecelendirme ver" yazan bir metin eklemek istiyorum. Kullanıcı her bir derecelendirme için özlüyor. Bunu yapmak için aşağıdaki kodu yazdım, ancak ver_rating düğümünün yalnızca formdaki son düğüme eklendiği bir soruna rastlıyorum. Bunun nedeni, appendChild'in kopyalamak yerine temelde bir düğümü hareket ettirmesi ve bunun klonuNode kullanarak çözmeyi denedim, ancak bu yalnızca JS'mi tamamen bozuyor.JS

Neyse, işte kod. Neyi yanlış yapıyorum? Yardımlarınız için

sayesinde

var give_rating = document.createElement('span'); 
give_rating.className='small red'; 
give_rating.innerHTML = '<strong> &nbsp;Give a rating!</strong>'; 

document.getElementById('rating1').appendChild(give_rating); 
document.getElementById('rating2').appendChild(give_rating); 

ben kod give_rating Yukarıdaki kodu kullanmak

Chris yalnızca 'rating2' eklenir.

document.getElementById('rating1').appendChild(give_rating.cloneNode(True)); 
document.getElementById('rating2').appendChild(give_rating.cloneNode(True)); 

Bu kodu kullandığımda, komut dosyasının tamamı başarısız olur. "Bir derecelendirme ver" örneğini nasıl eklerim? Formumdaki kullanıcı tarafından doldurulmayan her bir derecelendirme için mi?

cevap

4

JavaScript büyük/küçük harfe duyarlı: Truetrue (küçük harf) olmalıdır.

+0

OMG kazablanka, bu soruyu gönderdikten hemen sonra Firebug'u tam anlamıyla indirdim, Console'u çalıştırdım ve bunu anladım. Cevabınız için teşekkürler. JS beni deli ediyor :) – Chris

0
  1. Oluşturulan html öğelerini veya belge parçalarını yalnızca bir kez ekleyebilirsiniz. Yani, cloneNode() işlevini çağırmanız gerekir.
  2. Javascript büyük/küçük harf duyarlıdır. Yani, cloneNode(True) yerine cloneNode(true) olmalıdır.
  3. F12 tuşlarına basarak tarayıcının javascript hata ayıklayıcısını (hem Chrome hem de IE/Edge) açabilirsiniz. Sonra senaryona ne olduğunu görebiliyorsun.