29. december 2007 - 20:17
Der er
11 kommentarer og 1 løsning
slette options i select
hvordan er det muligt at slette alle options i en select?
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
29. december 2007 - 22:47
#1
function delete_child(elm, tag_name) { var elms = elm.childNodes; for(i=0; i<elms.length; i++) { if(elms[i].tagName.toLowerCase() == tag_name) elm.removeChild(elms[i]); } } det er som om den ikke sletter alle childNodes, men man skal køre funktionen et par gange før den sletter alle?
30. december 2007 - 12:17
#2
Tæl baglæns !-) -- eller benyt en while-løkke: while(elm.firstChild) elm.removeChild(elm.firstChild);
30. december 2007 - 13:01
#3
men hvad nu hvis jeg kun vil slette hvor tagName == 'span' ?
30. december 2007 - 13:03
#4
while(elm.firstChild) elm.removeChild(elm.getElementsByTagName("span")[0]);
30. december 2007 - 13:07
#5
function remove_child(elm, tag_name) { var elms = elm.childNodes; for(var i=elms.length; i>0; i--) { if(elms[i].tagName.toLowerCase() == tag_name.toLowerCase()) elm.removeChild(elms[i]); } } her giver tagName null
30. december 2007 - 13:10
#6
Du spurgte om options i en select, og de kan jo ikke være spans (der må _kun_ være options i en sådan !-) -- og hvis du har en node, hvor tagName er null, har du højst sandsynligt fat i en tekst-node, f.eks. et linjeskift ...
30. december 2007 - 13:12
#7
nej, nu var det bare et eksempel :) jeg burde nok have valgt option, men nu er det ikke kun der den skal bruges :)
30. december 2007 - 13:25
#8
Så prøv f.eks. if(elms[i].nodeType == 3 && elms[i].tagName ...
08. januar 2008 - 23:10
#9
smid et svar roenving :)
09. januar 2008 - 16:29
#10
Velbekomme '-)
19. juli 2009 - 06:37
#11
-- og tak for point ;~}
22. juli 2009 - 13:10
#12
<ole> - og den nemme cowboy metode: mySelect.length = 0; /mvh </bole>
Vi tilbyder markedets bedste kurser inden for webudvikling