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()

Ladda hem källkoden

Prenumerera på dattaproffs.se
Följ mig på twitter

Originalartikel och benchmark på encosia.com

Ha det bra och lev å må!

Relaterade poster:

  1. Ladda upp filer med Uploadify och ASP.NET
  2. Använd typekit.com för ej webbsäkra typsnitt
  3. ASP.NET MVC med LINQ TO SLQ, MySql databas och Repository Pattern
  4. Skapa iPhone applikationer med javascript