/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
replaceChild( a, b)
Fra : Birger Sørensen


Dato : 23-04-10 18:58

Hej.
Jeg har lidt af et problem.
Jeg har nogle editorer, som skal kommunikere med serveren via AJAX.
I nogle tilfælde, vil jeg bytte felter ud - <input> med <textarea>
f.eks. - afhængigt af hvad brugeren vælger.
FF (FireBug) siger Node not found" code: "8
IE giver Ugyldigt argument.


En del forkortet, ser koden sådan ud :

var p_elm = document.getElementById( 'edt_'+id);
if ( p_elm) {
   var c_elm = document.getElementById( 'e_data_'+id);
// c_elm er det eksisterende element der skal byttes
   if ( c_elm) {
// sætter eksisterende text fra c_elm i variablen c_txt
      if ( c_elm.tagName != 'INPUT') {
         c_elm.setAttribute( 'id', 'x');
         var e_elm = document.createElement( 'INPUT');
               alert( 'p:'+p_elm.nodeType+' - c:'+c_elm.nodeType+' -
e:'+e_elm.nodeType);
         e_elm.setAttribute( 'class', 'data_line');
         e_elm.setAttribute( 'id', 'e_data_'+id);
         e_elm.setAttribute( 'name', 'e_data');
         e_elm.setAttribute( 'value', c_txt);
         p_elm.replaceChild( e_elm, c_elm);
         }
}}

Fejlen er forkommer i linie 25 i ovenstående.
Jeg har prøvet med
p_elm.insertBefore( e_elm, c_elm);
p_elm.removeChild( c_elm);
og det giver præcis samme fejl - bpde FF og IE.
Er form-elementer ikke Nodes i DOM?
Jeg har det samme andetsteds, hvor div'er indsættes og fjernes igen, og
det virker problemløst.
Alerten - som er indsat for fejlfinding - siger
p:1 - c:1 - e:1
hvilket indkerer ELEMENT_NODE for alle tre elementer. Men det er de
åbenbart ikke når der skal arbejdes med dem?

Norgen der har en foklaring?
Eller en alternativ måde at gøre noget tilsvarende på?

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



 
 
Stig Johansen (23-04-2010)
Kommentar
Fra : Stig Johansen


Dato : 23-04-10 22:31

Birger Sørensen wrote:

> Norgen der har en foklaring?

Du kommer nok til at smide noget html, så vi kan se relationerne melllem
p_elm og c_elm.

--
Med venlig hilsen
Stig Johansen

Birger Sørensen (24-04-2010)
Kommentar
Fra : Birger Sørensen


Dato : 24-04-10 01:13

Stig Johansen kom med denne ide:
> Birger Sørensen wrote:
>
>> Norgen der har en foklaring?
>
> Du kommer nok til at smide noget html, så vi kan se relationerne melllem
> p_elm og c_elm.

Selvfølgelig.
Der er en div imellem - og det er der hunden var begravet...

<div id="edt_xx"> // p_elm
<div class="editor_indhold">
...
<input ...> // c-elm
</div>
</div>

Har ændret det så p_elm er den med klassen editor_indhold i stedet, og
så virker det som det skal.
Jeg har ellers prøvet stort set alt andet jeg kunne komme i tanke om.
Men min HTML var der ikke noget i vejen med. Det både validerer og ser
rigtigt ud

Takker og bukker - mange gange.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Stig Johansen (24-04-2010)
Kommentar
Fra : Stig Johansen


Dato : 24-04-10 03:10

Birger Sørensen wrote:

> Stig Johansen kom med denne ide:
>> Birger Sørensen wrote:
>>
>>> Norgen der har en foklaring?
>>
>> Du kommer nok til at smide noget html, så vi kan se relationerne melllem
>> p_elm og c_elm.
>
> Selvfølgelig.
> Der er en div imellem - og det er der hunden var begravet...
>
> <div id="edt_xx"> // p_elm
> <div class="editor_indhold">
> ...
> <input ...> // c-elm
> </div>
> </div>
>
> Har ændret det så p_elm er den med klassen editor_indhold i stedet, og
> så virker det som det skal.

Nu fremgår det ikke om du bruger p_elm, men du kan benytte
c_elm.parentNode.replace... i stedet.

Så undgår du problemer hvis du retter i HTML'et.

--
Med venlig hilsen
Stig Johansen

Birger Sørensen (24-04-2010)
Kommentar
Fra : Birger Sørensen


Dato : 24-04-10 10:39

Stig Johansen frembragte:
> Birger Sørensen wrote:
>
>> Stig Johansen kom med denne ide:
>>> Birger Sørensen wrote:
>>>
>>>> Norgen der har en foklaring?
>>>
>>> Du kommer nok til at smide noget html, så vi kan se relationerne melllem
>>> p_elm og c_elm.
>>
>> Selvfølgelig.
>> Der er en div imellem - og det er der hunden var begravet...
>>
>> <div id="edt_xx"> // p_elm
>> <div class="editor_indhold">
>> ...
>> <input ...> // c-elm
>> </div>
>> </div>
>>
>> Har ændret det så p_elm er den med klassen editor_indhold i stedet, og
>> så virker det som det skal.
>
> Nu fremgår det ikke om du bruger p_elm, men du kan benytte
> c_elm.parentNode.replace... i stedet.
>
> Så undgår du problemer hvis du retter i HTML'et.

Selvfølgelig...
Det er implementeret, og virker også!
Det er ikke altid, det kan svare sig at copy/paste og tilrette - ikke
engang fra sin egen kode ^^

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407838
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste