Mam mały problem. Otóż tworzę takiego sobie diva:
Kod
var lp_div_kosz = document.createElement('div');
var tx = document.createTextNode(l_p)
Page_updater.appendChild(lp_div_kosz, tx);
var nazwa_a_kosz = document.createElement('a');
var tx2 = document.createTextNode(nazwa_kosz);
Page_updater.appendChild(nazwa_a_kosz, tx2);
var cena_div_kosz = document.createElement('div');
var tx3 = document.createTextNode(cena_kosz);
Page_updater.appendChild(cena_div_kosz, tx3);
var usun_prod_ico = Page_updater.createElement('form', {action:''});
var form_div1 = document.createElement('div');
var usun_but = Page_updater.createNoEndTagElement('input', {type:'button', Class:'remove_ico', value:'', onclick:'javascript:Koszyk.usun(this.parentNode);'});
Page_updater.appendChild(form_div1, usun_but);
Page_updater.appendChild(usun_prod_ico, form_div1);
var change_quant = Page_updater.createElement('form', {action:'', id:'ch_f_prod'+id_kosz});
var form_div2 = document.createElement('div');
var change_inp = Page_updater.createNoEndTagElement('input', {type:'text', Class:'change_quant', value:ilosc_kosz, onblur:'javascript:Koszyk.zmien_ilosc(this.parentNode, this.value);'});
Page_updater.appendChild(form_div2, change_inp);
Page_updater.appendChild(change_quant, form_div2);
var tx = document.createTextNode(l_p)
Page_updater.appendChild(lp_div_kosz, tx);
var nazwa_a_kosz = document.createElement('a');
var tx2 = document.createTextNode(nazwa_kosz);
Page_updater.appendChild(nazwa_a_kosz, tx2);
var cena_div_kosz = document.createElement('div');
var tx3 = document.createTextNode(cena_kosz);
Page_updater.appendChild(cena_div_kosz, tx3);
var usun_prod_ico = Page_updater.createElement('form', {action:''});
var form_div1 = document.createElement('div');
var usun_but = Page_updater.createNoEndTagElement('input', {type:'button', Class:'remove_ico', value:'', onclick:'javascript:Koszyk.usun(this.parentNode);'});
Page_updater.appendChild(form_div1, usun_but);
Page_updater.appendChild(usun_prod_ico, form_div1);
var change_quant = Page_updater.createElement('form', {action:'', id:'ch_f_prod'+id_kosz});
var form_div2 = document.createElement('div');
var change_inp = Page_updater.createNoEndTagElement('input', {type:'text', Class:'change_quant', value:ilosc_kosz, onblur:'javascript:Koszyk.zmien_ilosc(this.parentNode, this.value);'});
Page_updater.appendChild(form_div2, change_inp);
Page_updater.appendChild(change_quant, form_div2);
funkcje Page_updater to troszkę zmodyfikowane wersje funkcji wbudowanych takie jak createElement czy appendChild. Ale nie w tym problem.
Tak stworzonego diva dodaję sobie do stronki(xhtml 1.1 lub jeśli IE to 1.0)
Następnie jeśli potrzeba to usuwam tego diva a dokładnie jego wnętrzności. I tu powstaje problem. Gdyż stworzona przeze mnie wersja removeChildren która własnie ma usuwać wnętrzności diva zostawiając jego "głowę" wariuje.
Kod
Page_updater.removeChild = function()
{
if(this.removeChild.arguments.length = 1)
{
var argum = document.getElementById(this.removeChild.arguments[0]);
for(var i = 0; i < argum.childNodes.length; i++)
{
if(argum.childNodes.item(i))
{
argum.removeChild(argum.childNodes.item(i));
}
}
return argum;
}
else
{
return null;
}
{
if(this.removeChild.arguments.length = 1)
{
var argum = document.getElementById(this.removeChild.arguments[0]);
for(var i = 0; i < argum.childNodes.length; i++)
{
if(argum.childNodes.item(i))
{
argum.removeChild(argum.childNodes.item(i));
}
}
return argum;
}
else
{
return null;
}
Wariacja polega na tym że metoda childNodes widzi wszystkie tagi poprawnie poza tagiem <a> który jak sprawdziłęm alertem zamiast <a>cośtamcośtamcośtam</a> wyświetla cośtamcośtamcośtam.
W ten sposób nie mam dostępu do tego elementu i nie jest usuwany.
Div wygląda tak
Czy ma ktoś jakieś pojęcie o co chodzi i czemu tak się dzieje. Bede dźwięczny za pomoc. Pozdrawiam.