10. november 2008 - 22:24
Der er
26 kommentarer og 2 løsninger
fjrene Index fra Array
Jeg har nogle problemer med at fjrene Index fra Array I det skulle være slice(Index, Lengt) som kunne gøre det, men jeg kan ikke få den til at virke.. Se under "remove: function(e)" var Custom = { init: function(text) { if (!Custom.List) { Custom.List = []; } this.text = text; Custom.List[Custom.List.length] = this; this.div = document.createElement('div'); this.div.className = text; this.div.onclick = Custom.remove; this.div.appendChild(document.createTextNode(text)); document.body.appendChild(this.div); }, remove: function(e) { for(var i = 0; i < Custom.List.length; i++) { if (Custom.List[i].div = this) { document.body.removeChild(Custom.List[i].div); Custom.List.slice(i, 1); /* HER GÅR DET SIKKERT GALT */ break; } } var tmp = ''; for(var i = 0; i < Custom.List.length; i++) { tmp += Custom.List[i].text + ', '; } alert(tmp); } }; window.onload = function() { new Custom.init('div a'); new Custom.init('div b'); new Custom.init('div c'); new Custom.init('div d'); }
Annonceindlæg fra Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
10. november 2008 - 22:28
#1
Hvad er resultatet?
10. november 2008 - 22:33
#2
slice er en funktion. Du skal snuppe resulatet: noget=Custom.List.slice(i, 1);
10. november 2008 - 22:34
#3
Den her tror jeg heller ikke du mener: if (Custom.List[i].div = this) for det kunne være du mente if (Custom.List[i].div == this)
10. november 2008 - 22:35
#4
w13 ?? resultatet ?? resultatet er at der ikke sker noget når jeg bruger : Custom.List.slice(i, 1);
10. november 2008 - 22:36
#5
Ok, det var bare det, jeg fiskede efter, da det ikke fremgik af spørgsmålet. Men jeg mener, at Erik har helt ret.
10. november 2008 - 22:38
#6
erikjacobsen: :D Ja det er ==, men det gør desværre ikke nogle forskel på Array
10. november 2008 - 22:40
#7
er det sådan : Custom.List=Custom.List.slice(i, 1); eller hvordan.. for det virker heller ikke..
10. november 2008 - 22:41
#8
Nu siger du, at der ikke sker noget, når du bruger den funktion. Betyder det så, at Custom.List ikke bliver "beskåret", eller betyder det, at Custom.List herefter er tom?
10. november 2008 - 22:42
#9
Hvad sker der? Hvad burde der ske? "virker ikke" er ikke synderligt informativt.
10. november 2008 - 22:42
#10
Kort sagt.. Jeg vil fjerne det Index som Jeg fjerner her: document.body.removeChild(Custom.List[i].div);
10. november 2008 - 22:44
#11
Custom.List=Custom.List.slice(i, 1); Fjerner ALLE i Arrayet..
10. november 2008 - 22:45
#12
Ja, og hvor kalder du remove?
10. november 2008 - 22:47
#13
det gør jeg på det div jeg klikker på -> this.div.onclick = Custom.remove;
10. november 2008 - 22:48
#14
Prøv den på selv: Put koden i en fil : Custom.js <html> <head> <title>Nyt Dokument</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script src="Custom.js" type="text/javascript"></script> </head> <body> </body> </html>
10. november 2008 - 22:49
#15
:P Prøv den selv :D
10. november 2008 - 23:04
#17
flere ting ?? du kan da ikke få den til at virke når du udskifter "this" med "e" så er det jo kun når du bruger "Custom.remove(a);" under onload det virker og ikke når man klikker på divét
10. november 2008 - 23:06
#18
Men det virker med det du har lavet -> Custom.List=Custom.List.slice(0, i).concat(Custom.List.slice(i+1)); Smid et svar
10. november 2008 - 23:07
#19
Er du sikker på det hele virker?
10. november 2008 - 23:09
#20
Ja sådan da.. prøv : var Custom = { init: function(text) { if (!Custom.List) { Custom.List = []; } this.text = text; Custom.List[Custom.List.length] = this; this.div = document.createElement('div'); this.div.className = text; this.div.onclick = Custom.remove; this.div.appendChild(document.createTextNode(text)); document.body.appendChild(this.div); }, remove: function(e) { for(var i = 0; i < Custom.List.length; i++) { if (Custom.List[i].div == this) { document.body.removeChild(Custom.List[i].div); Custom.List=Custom.List.slice(0, i).concat(Custom.List.slice(i+1)); break; } } } }; window.onload = function() { new Custom.init('div a'); new Custom.init('div b'); new Custom.init('div c'); new Custom.init('div d'); }
10. november 2008 - 23:13
#21
Ja der skal lige den her med når der testes.. var tmp = ''; for(var i = 0; i < Custom.List.length; i++) { tmp += Custom.List[i].text + ', '; } alert(tmp);
10. november 2008 - 23:13
#22
Det skal nok passe, når du siger det. Jeg havde ikke set at linien med "remove" var en del af dit script, så mine ændringer var bare for at få kunnet lave "slice"-n rigtigt. Og jeg samler slet ikke på point, tak.
10. november 2008 - 23:40
#23
Nej jeg samler heller ikke på point.. men det var jo dig som løste problemet så smid nu bare et svar.. ;-)
10. november 2008 - 23:41
#24
Du får ham ikke til det. =)
10. november 2008 - 23:58
#25
w13 : måske.. ellers kan du jo smide et svar.. :D
11. november 2008 - 09:42
#26
Hehe. Vi ka' vel dele?
11. november 2008 - 16:18
#27
Ok, og mange tak for jeres hjælp.
11. november 2008 - 16:54
#28
Tak for points! :)
Vi tilbyder markedets bedste kurser inden for webudvikling