magicgunnar Skrevet 16. februar 2007 Del Skrevet 16. februar 2007 Jeg bruker følgende syntaks for å aksessere noder i DOM-hierarkiet: alert(document.getElementById(copyId).cells.volume.innerHTML); Dette er for å aksessere en rad i en tabell som har copyId som id, riktig rad blir aksessert, men cells finner den ikke, hvordan kan jeg aksessere cellene i en rad? Det jeg gjør nå fungerer bare i Firefox og ikke i IE eller Opera. Er det slik at bare firefox støtter denne måten å aksessere elementer på, må jeg gi hvert enkelt element en id for å kunne aksessere det i ie og opera? HTML-koden ser omtrent slik ut: <tr id='54' bgcolor=E4E2D8> <td name='copyId'>54</td> <td name='userId'>2</td> <td name='volume'>12</td> <td name='groupId'>42</td> <td name='originals'>Noe tekst<br>Mer tekst<br></td> <td name='edit'> <form name='editCopyJobForm'> <input name='editCopyJobButton' type='button' value='endre' onclick='editCopyJob(54)' /> </form> </td></tr> Lenke til kommentar
magicgunnar Skrevet 16. februar 2007 Forfatter Del Skrevet 16. februar 2007 Har funnet ut at jeg kan bruke f.eks: alert(document.getElementById(copyId).childNodes[0].innerHTML); I IE for å få samme effekten som med det forrige i firefox, men å bruke childNodes og en index er mer uoversiktlig, samtidig som dette til gjengjeld ikke fungerer i Firefox. Noen som kan mer om dette enn meg, og som kan fortelle meg hva jeg bør bruke? Lenke til kommentar
magicgunnar Skrevet 16. februar 2007 Forfatter Del Skrevet 16. februar 2007 alert(document.getElementById(copyId).cells[0].innerHTML); Ser ut til å funke i både IE og Firefox, så selv om det kan bli litt mer uoversiktelig er det vel til å leve med Lenke til kommentar
dabear Skrevet 16. februar 2007 Del Skrevet 16. februar 2007 Hei, litt usikker på hva du ville gjøre her. Ville du endre innholdet "54" til noe annet i denne delen av koden? <td name='copyId'>54</td> parent-formen har riktignok et element kalt "volume", men det har ikke denn rada. Litt vanskelig å hjelpe når det du sier ikke stemmer overns med koden din. document.getElementById(copyId).cells[0].innerHTML er copyId en variabel? viss ikke skal det vel være en string, nemlig 'copyId' Lenke til kommentar
magicgunnar Skrevet 17. februar 2007 Forfatter Del Skrevet 17. februar 2007 parent-formen har riktignok et element kalt "volume", men det har ikke denn rada. Litt vanskelig å hjelpe når det du sier ikke stemmer overns med koden din. Beklager, det skulle selvfølgelig stå: cells[2] istedenfor cells[0] altså: document.getElementById(copyId).cells[2].innerHTML Dette fungerer i FF, O og IE. Mens: document.getElementById(copyId).cells.volume.innerHTML Som jeg syns er mer beskrivende og dermed mer oversiktlig, bare fungerer i FF. I et javascript så er copyId en variabel, som hvis den skal aksessere den html-snutten jeg la ut er 54. Da finner getElementById(54) radelementet. Det er her problemet starter. Dette radelementet har en celle med navn='volume', derfor vil jeg gjerne aksessere denne cellen ved å si noe slikt som: cells.volume dette er oversiktlig og greit, men det eneste som funker i IE, Firefox og Opera er cells[2], noe jeg ikke føler er like oversiktlig, og vil gi problemer hvis tabellen får flere eller færre kolonner som følge av en endring. Men det må jeg vel kanskje bare leve med? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå