Im using tabbed content on my page (SEE MY FIDDLE)
Now the tabbed content makes use of <ul><li>
elements to display the different tabs. Inside one of these tabs I would like to add a <ul><li>
list however the list is not getting displayed correctly I suspect because:
- The jquery is effecting it
- It is nested inside another li elements
Any idea how I can fix this?
please look at fiddle to fully understand my question
Advertisement
Answer
You can use the >
, child selector to refine the selectors to match only the <li>
elements immediately under <ul id="tab">
:
ul#tab > li { display: none; } ul#tab > li.active { display: block; }
$("ul#tab > li:nth-child(" + nthChild + ")").addClass("active");
https://jsfiddle.net/63og0jue/
Without >
, the selectors will match any <li>
descendant of <ul id="tab">
:
<ul id="tab"> <li><!-- ... --></li> <li> <!-- ... --> <li>one</li> <li>Two</li> <li>THree</li> <!-- ... --> </li> <li><!-- ... --></li> </ul>
ul#tab li:nth-child(1)
, for example, matches both of these as the first-child of their respective parents:
<li>one</li>
<li> <p>HI There Enter personal Info</p> </li>