Den här specifika koden i en tagg ses ofta i provkod som involverar JavaScript. Oftast ser du att det ser ut som något liknande där det primära syftet med taggen är att tillhandahålla en länk för personer att klicka på för att köra JavaScript.
När den används i exempelkod som att # är en platshållare som representerar var du än vill att länken faktiskt ska gå om personen som besöker din sida inte har JavaScript aktiverat.
När du ser href = "#" i livekod på en webbsida betyder det att personen som skrev sidan har gjort ett misstag. Du bör aldrig se href = "#" i den faktiska källkoden på en webbsida eftersom själva # faktiskt är ogiltigt och meningslöst.
När du ansluter JavaScript till en länk, oavsett om det är så eller använder en diskret motsvarighet, måste du alltid ta hänsyn till dem som av någon anledning inte har JavaScript aktiverat. De returnera falskt i slutet av mitt exempel ovan förhindrar att href faktiskt används om JavaScript körs men href är fortfarande det som kommer att användas om JavaScript av någon anledning inte körs. Href måste därför innehålla ett faktiskt giltigt värde baserat på var du vill att länken ska ta personer som inte har JavaScript tillgängligt. Eftersom personen som skrev JavaScript för dig inte vet var du vill att dessa människor ska tas med har de precis lagt in ett # i sin kod där du behöver ersätta den riktiga adressen.
En # är giltig i ett href-attribut förutsatt att det inte är det enda tecknet i värdet. Där # följs av ytterligare tecken är dessa ytterligare tecken värdet på ett id-attribut på andra håll på den aktuella webbsidan och sidan hoppar för att visa taggen som innehåller den id så nära som möjligt överst i webbläsarvyen. Till exempel hoppar till på samma webbsida. Om du också har ett filnamn som går före # så kommer id-numret det hoppar till att finnas inom den webbsidan så hoppar till den id på nästa.htm-sida.
Ett #-tecken är inte giltigt som det sista tecknet i href eftersom det innebär att du vill hoppa till en id på sidan men värdet på det id att hoppa till har inte angetts. Handlingen som webbläsaren ska vidta i det här fallet är odefinierad men de flesta kommer helt enkelt att hoppa tillbaka till toppen av den aktuella sidan.
Så vad gör du om JavaScript du vill bifoga är sådant att det inte finns något alternativ för dem utan JavaScript? Jo, i så fall vill du inte att de utan JavaScript ska se länken alls eftersom om den är synlig för dem kommer några av dem att klicka på den och du har inte något du vill att den ska göra för dem och det kommer bara att vara förvirrande. Lösningen är därför att se till att länken endast är synlig för de med JavaScript aktiverat och sättet att göra det är att lägga till länken på webbsidan med JavaScript.
Endast där det läggs till på webbsidan med JavaScript kan du vara säker på att alla som klickar på länken har JavaScript aktiverat och därför kommer doSomething () -koden att köras och href = "#" ignoreras. Då och först då är det meningsfullt att lämna # på den platsen i koden eftersom href-attributet krävs för att vissa webbläsare ska acceptera koden som en giltig länk och där du vet att de enda som ser de link kommer att ha JavaScript aktiverat. Du vet också att ingen kommer att någonsin hamna på att föras till den plats som href pekar på och så den kan innehålla vad som helst utan att det spelar någon roll och så # är ett lika bra värde som alla och är säkert bättre än href = "javascript:" (vilket är en konstruktion som aldrig bör användas oavsett om något följer kolon eller inte).