Hepinizin temizlemek istediğiniz varsayalım Çocuklar, sadece doğrudan çocukları değil, bu yüzden özyinelemelidir. Farklı giriş elemanları farklı şekilde temizlendikçe, türlerini kontrol etmelisiniz, böylece onlarla ne yapacağınızı bilmelisiniz.
clearChildren(document.getElementById('IdOfTheDiv'));
Düzenleme::
unuttum seçeneğini ...
elemana bir referansla
function clearChildren(element) {
for (var i = 0; i < element.childNodes.length; i++) {
var e = element.childNodes[i];
if (e.tagName) switch (e.tagName.toLowerCase()) {
case 'input':
switch (e.type) {
case "radio":
case "checkbox": e.checked = false; break;
case "button":
case "submit":
case "image": break;
default: e.value = ''; break;
}
break;
case 'select': e.selectedIndex = 0; break;
case 'textarea': e.innerHTML = ''; break;
default: clearChildren(e);
}
}
}
Çağrı it: Ben de textareas temizlemek, ancak değişmeden düğmeleri bırakmak istiyorum varsayalım
Düzenleme 2:
Bazı düzeltmeler: childNodes.length, tagName ve büyük tagName değerleri olmadan elemanları taşıma.
+1, ben de bunu seviyorum – karim79
Çocuk çocuklar üzerinde çalışmak için ona ihtiyaç hakkında iyi bir varsayım, ancak altta yatan düğümleri kapmak için yineleme gerekmez. –
Cevabınız için teşekkür ederiz! Bunu uygulamaya çalışıyorum ve garip bir semptom var. Basit bir test formu üzerinde görünür bir etkisi yoktur. Eger print elemanina ulasirsam [object HTMLDivElement] alırsam (iyi ..) Eğer element.childNodes 'i basmak için alert() alırsam [object nodeLIst]' i (tekrar iyi) varsa, ama bende yankılanmak için alert() duyarsam() Ben() içinde asla ateş etmeyin, bu yüzden düğümlerin üzerinde yineleme yapmaz gibi görünüyor. Kod şöyle: function clearChildren (öğe) { için (var i = 0; i
jerrygarciuh