Gå til innhold

Aksessere noder i IE og Opera


Anbefalte innlegg

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
Videoannonse
Annonse

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

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
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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...