View Single Post
Limited edition
Moff's Avatar
Det du trenger er en referanse som lar deg "få tak i" <tr>-elementet i JavaScriptet ditt. Det etse foreslår vil forsåvidt fungere, fordi JavaScriptet oppretter <tr>-elementet, og dermed har du en referanse til det.

Hvis du imidlertid ikke ønsker å opprette elementet via JavaScript (det blir ofte litt rotete), så kan du gi elementet en ID. JavaScript er i stand til å søke opp HTML-elementer, men søk etter objekter med ID er ofte det mest effektive alternativet.

I HTML kan du skrive noe slikt:

Kode

<tr id="dingseboms" data-target="">
Og i JavaScript gjør du slik:

Kode

// Velg <tr>-elementet og sett "data-target" til resultatet av somethign()
document.getElementById("dingseboms").setAttribute("data-target", somethign());
En klassisk tabbe man ofte gjør som fersk JS-utvikler er at man kjører JavaScriptet før nettsiden er ferdig å laste inn. Hvis du plasserer JavaScript i <head>, der det helst bør være plassert, så må du ha en funksjon som sørger for at skriptet ikke kjører før hele HTML-dokumentet er ferdig å laste inn. Ellers vil skriptet kjøre så fort nettleseren har passert <head>, og på det tidspunktet er ikke noen elementer i <body> rendret ennå. getElementById() vil da returnere undefined, fordi elementet ikke eksisterer. Det er veldig lett å fikse hvis du bruker et JavaScript-rammeverk som for eksempel JQuery, men du kan også skrive det selv. JavaScript er et veldig, veldig vanskelig språk å forholde seg til fordi mange nettlesere mangler støtte for flere funksjoner (eller implementerer de feil). Jeg pleier ikke å anbefale at nye utviklere hopper rett på tredjeparts rammeverk fra början, men når det kommer til JavaScript, så føler jeg at JQuery er et must-have, fordi du slipper å skrive redundans for hver bidige ting du prøver å gjøre. Hvis du vil ha en document-ready-funksjon som virker i alle nettlesere, så må du skrive minst 4 ulike funksjoner;

Kode

document.addEventListener("DOMContentLoaded", readyFunction, false);
window.addEventListener("load", readyFunction, false);
document.attachEvent("onreadystatechange", readyFunction);
window.attachEvent("onload", readyFunction);
I JQuery, så er alt dette bakt inn i én funksjon, som sørger for å sjekke hvilken av disse 4 som er tilgjengelig i brukerens nettleser. JQuery fungerer altså som et interface som sørger for at alle funksjoner du bruker fungerer for 99% av alle brukere.