Hej, återigen så är jag här med en kort screencast.
Denna gång handlar det om hur man kan ha sin javascript kod i en extern fil och ändå jobba mot element som ASP.NET har ändrat ID på.
När vi jobbar i ASP.NET Web Forms och masterpages så lägger .NET till info i ID attributet, t ex id=”two” blir id=”ctl00_ContentPlaceHolder1_two”, om man då ska komma åt elementet med jQuery så får man mecka lite.
Ett vanligt alternativ är att skriva sin javascript direkt i htmlsidan och använda <%=two.ClientID%> dår får man ut hela ctl00_ContentPlaceHolder1_two och kan på så vis referera till det elementet. Visst det fungerar alldeles utmärkt, men man vill ju inte ha massa javascript direkt i sidan utan det vill man helst ha i en extern *.js fil.
Då kan du utnyttja jQuerys EndsWith det man gör då är att skriva $(‘[id$=two]‘) det jQuery gör då är att gå igenom _alla_ id attribut på hela sidan och ser om det slutar på two.
Prestandan blir såklart lidande i detta fallet, men i väldigt många fall vet du ju vilket element du vill leta efter t ex en div $(‘div[id$=two]‘) då letar jQuery igenom alla divar som har ett id som slutar på two, i ett test borta hos Dave Ward så visar den att detta halverade tiden, kan man sen minska elementen den behöver leta igenom ännu mer, t ex $(‘div.blogpost[id$=two]‘) så är man väldigt nära samma prestanda som $(‘#two’) dvs getElementById()
Prenumerera på dattaproffs.se
Följ mig på twitter
Originalartikel och benchmark på encosia.com
Ha det bra och lev å må!







