Как ограничить количество найденных элементов?
Нашел на просторах скрипт табов и передела под свои нужды. Но столкнулся с тем, что у меня есть вложенные табы. Из-за этого при нажатии на родительский таб - закрываются и дочерние. Решил пойти путем вычисления количества табов и отображения только этих элементов. Количество нахожу в переменной length, но не знаю как ограничить количество tab на длину length. Помогите советом, либо посоветуйте как мне разрулить ситуацию с вложенными табами
function makeTabs() {
// активирует первую вкладку. тут почему то не работает
var arr = $(".tab-content");
$.each(arr, function(index, value) {
console.log(value)
$(value).children().hide();
$(value).siblings('.tabs-title').children().first().attr("id", "current");
$(value).children().first().fadeIn();
})
}
makeTabs();
$('.tabs-title a').click(function(e) {
e.preventDefault();
let length = $(this).closest('.tabs-title').children().length,
tab = $(this).closest('.tabs-title').siblings('.tab-content').find('.tab');
tab.hide();
$(this).closest('.tabs-title').children('li').attr("id", ""); //Сброс ID
$(this).parent().attr("id", "current");
$('#' + $(this).attr('title')).fadeIn();
});
.tabs-title {
overflow: hidden;
width: 100%;
margin: 0;
padding: 0;
list-style: none;
}
.tabs-title li {
float: left;
margin: 0 .5em 0 0;
}
.tabs-title a {
box-shadow: 2px 0px 3px rgba(0, 0, 0, .5);
border-top-right-radius: 15px;
position: relative;
background: #ddd;
background-image: linear-gradient(to bottom, #fff, #ddd);
padding: .7em 1.5em;
float: left;
text-decoration: none;
color: #000;
text-shadow: 0 1px 0 rgba(255, 255, 255, .8);
/*box-shadow: 0 2px 2px rgba(0, 0, 0, .4);*/
}
.tabs-title a:hover,
.tabs-title a:hover::after,
.tabs-title a:focus,
.tabs-title a:focus::after {
background: #fff;
}
.tabs-title a:focus {
outline: 0;
}
.tabs-title #current a,
.tabs-title #current a::after {
background: #fff;
z-index: 3;
}
.tab-content {
padding-top: 30px;
background: #fff;
position: relative;
z-index: 2;
-moz-border-radius: 0 5px 5px 5px;
-webkit-border-radius: 0 5px 5px 5px;
border-radius: 0 5px 5px 5px;
-moz-box-shadow: 0 -2px 3px -2px rgba(0, 0, 0, .5);
-webkit-box-shadow: 0 -2px 3px -2px rgba(0, 0, 0, .5);
box-shadow: 0 -2px 3px -2px rgba(0, 0, 0, .5);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<ul class="tabs-title">
<li><a href="javascript:" title="tab1">one</a></li>
<li><a href="javascript:" title="tab2">two</a></li>
<li><a href="javascript:" title="tab3">three</a></li>
</ul>
<div class="tab-content">
<div id="tab1" class="tab">
some code
</div>
<div id="tab2" class="tab">
some code
</div>
<div id="tab3" class="tab">
<div>
<ul class="tabs-title">
<li><a href="javascript:" title="child_tab1">one</a></li>
<li><a href="javascript:" title="child_tab2">two</a></li>
<li><a href="javascript:" title="child_tab3">three</a></li>
<li><a href="javascript:" title="child_tab4">four</a></li>
<li><a href="javascript:" title="child_tab5">five</a></li>
</ul>
<div class="tab-content">
<div id="child_tab1" class="tab">some code</div>
<div id="child_tab2" class="tab">some code</div>
<div id="child_tab3" class="tab">some code</div>
<div id="child_tab4" class="tab">some code</div>
<div id="child_tab5" class="tab">some code</div>
</div>
</div>
</div>
</div>
</div>