Avatar billede egeriis Nybegynder
14. juni 2007 - 21:34 Der er 4 kommentarer og
1 løsning

Problem i Internet Explorer ved ændring af ID på element

Hej eksperter,

Jeg har lavet flg. script:

http://sqdev.dk/exp/exp.html

I dette script oplever jeg et problem i Internet Explorer. Når jeg fx har de tre elementer som er der til start, jeg fjerner det midterste og tilføjer en ny linie (append), virker det ikke som det skal. Så bliver prisen på det nytilføjede produkt tilegnet den ovenstående.

Det jeg gør, er at ændre ID på textelementerne, og det lader IE ikke til at kunne lide. Er der nogen måde at løse dette problem på?

Det virker som det skal i Firefox.

Tak for hjælpen! :)
Avatar billede olebole Juniormester
15. juni 2007 - 12:35 #1
<ole>

Jeg gider ikke vente på serveren - men nej, det har IE ikke problemer med. Du må gøre noget forkert  =)

/mvh
</bole>
Avatar billede egeriis Nybegynder
15. juni 2007 - 20:48 #2
Vente på serveren? Serveren skulle da gerne fungere upåklageligt. Her kommer den ihvertfald ligeså hurtigt frem som hvis den lå lokalt.

Nå, men her er den funktion hvor jeg ændrer på ID ihvertfald :-)


    function removeRow(row) {
        document.getElementById(row).id='rowRem';
        var parent = document.getElementById("rowRem").parentNode;
        var rem = document.getElementById("rowRem");
        parent.removeChild(rem);
        for (var n = 0; n < i; n++) {
            if (n > row) {
                // Change field names
                document.getElementById('subtotal'+n).name='subtotal'+(n-1);
                document.getElementById('product'+n).name='product'+(n-1);
                document.getElementById('price'+n).name='price'+(n-1);
                document.getElementById('count'+n).name='count'+(n-1);
                // Change field IDs
                document.getElementById('subtotal'+n).setAttribute('id', 'subtotal'+(n-1));
                document.getElementById('product'+n).setAttribute('id', 'product'+(n-1));
                document.getElementById('price'+n).setAttribute('id', 'price'+(n-1));
                document.getElementById('count'+n).setAttribute('id', 'count'+(n-1));
                //
                document.getElementById('rem'+n).id='rem'+(n-1);
                document.getElementById('subtotalapp'+n).id='subtotalapp'+(n-1);
                document.getElementById(n).id=(n-1);
            }
        }
        i--;
        calcPriceTotal();
    }


Jeg forstår bare ikke, at det virker i Firefox hvis der skulle være lavet en fejl.
Avatar billede egeriis Nybegynder
15. juni 2007 - 20:48 #3
Jeg værdsætter din hjælp :-)
Avatar billede roenving Novice
17. juni 2007 - 02:02 #4
Et id må ikke begynde med et tal, så det kan se ud til, at du må ændre noget i din opbygning ...

F.eks.

    function removeRow(row) {
        var rem = document.getElementById("row" + row);
        rem.parentNode.removeChild(rem);
        for (n = row+1; n < i; n++) {
            // Change field names
            document.getElementById('subtotal'+n).name='subtotal'+(n-1);
Avatar billede egeriis Nybegynder
11. september 2007 - 13:58 #5
Spørgsmål lukkes da det ikke længere er relevant for mig.

Point tildeles om ønsket?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester