DEV Community

Cover image for Let's understand the differences: href="", href="#", and href="javascript:void(0)"
Md Readwan
Md Readwan

Posted on

Let's understand the differences: href="", href="#", and href="javascript:void(0)"

Empty HREF: href=""

Using an empty href attribute (href="") reloads the current page. This is like clicking the refresh button of the browser.

href="#"

The href=”#” attribute makes the page scroll to the top. If you don’t want this, you can stop the behavior with JavaScript:

<a href=”#” onclick=”return false;”>Hey</a>
<!--! and there ane many ways with js to achive this -->
href="javascript:void(0)"
Enter fullscreen mode Exit fullscreen mode

Sometimes you will see href="javascript:void(0);" inside an <a> tag. This makes a link that does nothing when clicked. Other ways to do this are:

href="javascript:{}"
href="javascript:null"
Enter fullscreen mode Exit fullscreen mode

These links do nothing it’s best to avoid them.

href="#any_id"

The href="#any_id" attribute does nothing unless have an element with an ID of any_idon the page. By clicking the link will scroll to that element.
To avoid any scroll use a different id value that doesn't exist on the page.

Best Practices:
Use a Button or Span: If your link doesn’t navigate anywhere, you can use or instead of an <a> element as well as you can style these elements as needed using raw CSS or CSS framework.

Lastly, let’s summarize these

  • href="#" scrolls the current page to the top.
  • href="javascript:void(0)" does nothing.
  • href="#any_id" does nothing unless there is an element with the specific ID.

And finally,
I’m appreciative that you read my piece.

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)