29. november 2001 - 15:17
Der er
7 kommentarer og 1 løsning
prototype\'ing for html objekter
Kan man lave prototype\'ing for html objekter ala: <TD>.prototype.access = new accessType(); function accessType() { this.owner; this.accessCount=0; } for senere at tilgå <TD>\'ens nye access property via: document.all.TDID.access.accessCount++;
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
29. november 2001 - 15:23
#1
I NS6.0 og NS6.2+ (NS6.1 havde fjernet det) kan du prototype HTMLElement: HTMLElement.prototype.getTag = function(){ return this.tagName; } alert( document.getElementById(\"etElement\").getTag() ); men hvis du blot skal sætte en property på dit element, kan du jo blot gøre dette function AddCount(el){ el.accessCount = el.accessCount?el.accessCount++:0; } var el = document.all.TDID; AddCount(el); alert(el.accessCount); hvis du erstatter document.all med document.getElementById vil det ovenstående også virke i IE4+ samt NS6+/Mozilla. /Thor
29. november 2001 - 15:23
#2
Hovsa, ret lige el.accessCount = el.accessCount?el.accessCount++:0; til el.accessCount = el.accessCount?el.accessCount++:1; /Thor
29. november 2001 - 15:33
#3
er HTMLElement et reserveret ord, eller skal jeg erstatte det med den ønskede html type - feks td ?
29. november 2001 - 15:36
#4
Hvis du vil bruge det, skal du bruge HTMLElement - men som sagt kan det være ret ligegyldigt da det kun er NS6.2+ der understøtter det. Istedet kan du blot sætte properties direkte på dine element referencer. /Thor
29. november 2001 - 15:43
#5
ok - jeg skal lave det til ie5.0 + så jeg laver en funktion der på onload tildeler alle TD\'er en access property: function accessType() { this.owner; this.accessCount=0; } function init() { var i; var obj; for(i=0;i<document.all.length;i++) { obj = document.all[i]; if(obj.tagName==\'TD\') obj.access = new accessType(); } } ... som jeg så kan tilgå senere...: function getAccess() { var i; var obj; for(i=0;i<document.all.length;i++) { obj = document.all[i]; if(obj.tagName==\'TD\') alert(obj.access.accessCount); } }
29. november 2001 - 15:45
#6
tak :-)
29. november 2001 - 15:50
#7
Et lille tip: Istedet for at loope ALLE elementer på siden igennem, kan du blot nøjes med at loppe alle TD elementer igennem. var TDS = document.all.tags(\"TD\"); Og hvis du planlægger at bruge DOM, hedder det var TDS = document.getElementsByTagName(\"TD\"); /Thor
29. november 2001 - 15:51
#8
cool - mange tak
Vi tilbyder markedets bedste kurser inden for webudvikling