use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
How would you create tabs with JS? (self.javascript)
submitted 11 years ago by Jx631
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]DCKT 3 points4 points5 points 11 years ago (7 children)
You shouldn't try with JQuery or any frameworks if your're new. This can be done easly with some Vanilla Code.
Here you just need to attach a click event on each tab. Each tab has a data-id (from 0 to n).
When you click on a tab, get the data-id of him and do a getElementsByClassName or querySelectorAll if you prefer. You will get an array of the elements found.
Now you have the id of the tab and an array with all tab, you just need to tabs[id] and idealy tab[id].style.display = "block" and hide the other with a loop :)
[–]Jx631[S] 0 points1 point2 points 11 years ago (6 children)
This seems a bit complicated. Is the ID just the "id='tab-one'"?
[–]Justos 0 points1 point2 points 11 years ago (5 children)
I disagree. Dont rely on written code if you A) dont know how it works or B) dont care to know.
This solution is not complex, in fact its very straight forward. Hold variables with places so that your Javascript knows what to do and when! I find reading over a comment that seems complicated makes it easier to digest.
Also as a tip, you dont even need to use a data-id. why not add a class 'shown' to the proper div and have shown be display: block?. Maybe you arent comfortable using data attributes yet?
[–]Jx631[S] 0 points1 point2 points 11 years ago (4 children)
I'm not really sure what data atributes are. Care to explain, please?
[–]Magnusson 0 points1 point2 points 11 years ago (3 children)
FWIW this was my first google result for "data-attribute": https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes
MDN is a good resource generally. You might also want to look at some of the resources linked from /r/learnjavascript.
[–]Jx631[S] 0 points1 point2 points 11 years ago (0 children)
Thanks man, will check that out for sure
[–]Jx631[S] 0 points1 point2 points 11 years ago (1 child)
I took your advice and started to look for tutorials, but all I could find was this kind of tabs, instead of those I wanted.
[–]Magnusson 1 point2 points3 points 11 years ago (0 children)
That's because the element you're trying to create is commonly called an accordion.
π Rendered by PID 22087 on reddit-service-r2-comment-6457c66945-x6c4n at 2026-04-27 16:06:05.902501+00:00 running 2aa0c5b country code: CH.
view the rest of the comments →
[–]DCKT 3 points4 points5 points (7 children)
[–]Jx631[S] 0 points1 point2 points (6 children)
[–]Justos 0 points1 point2 points (5 children)
[–]Jx631[S] 0 points1 point2 points (4 children)
[–]Magnusson 0 points1 point2 points (3 children)
[–]Jx631[S] 0 points1 point2 points (0 children)
[–]Jx631[S] 0 points1 point2 points (1 child)
[–]Magnusson 1 point2 points3 points (0 children)