Reputation: 51
I want to hide first two li from ul I am using like
<ul class="newade">
<li>
<ul>
<li>sub1</li>
<li>sub2</li>
<li>sub3</li>
</ul>
</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
</ul>
But When I am trying to hide using JQUERY I am facing a problem it is including sub-list also.
<script type="text/javascript">
$('.newade').find("li:gt(1)").hide();
</script>
But I want result like this
<ul class="newade">
<li>
<ul>
<li>sub1</li>
<li>sub2</li>
<li>sub3</li>
</ul>
</li>
<li>Two</li>
<li style="display:none;">Three</li>
<li style="display: none;">Four</li>
<li style="display: none;">Five</li>
</ul>
Upvotes: 1
Views: 1017
Reputation: 437
Use this line : $('.newade > li:not(:lt(2))').hide();
$('.newade > li:not(:lt(2))').hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="newade">
<li>
<ul>
<li>sub1</li>
<li>sub2</li>
<li>sub3</li>
</ul>
</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
</ul>
Upvotes: 2
Reputation: 50326
Use css nth selector where n is 0,1,2.... so in first case it will be -0+2 , in second case it will be -1+2 and
.newade li:nth-child(-n+2) {
display: none;
}
<ul class="newade">
<li>
<ul>
<li>sub1</li>
<li>sub2</li>
<li>sub3</li>
</ul>
</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
</ul>
Upvotes: -1
Reputation: 7490
Why script when css can do it? :)
.newade>li:nth-child(1), .newade>li:nth-child(2) {
display:none;
}
.newade>li:nth-child(1), .newade>li:nth-child(2) {
display:none;
}
<ul class="newade">
<li>
<ul>
<li>sub1</li>
<li>sub2</li>
<li>sub3</li>
</ul>
</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
</ul>
Upvotes: 1