我是 jQuery 的新手,遇到了一些障碍。
这是我的 HTML:
<div id="mainpage-tabs-area">
<ul class="nav cf">
<li class="tb-one"><a href="#description" class="current">BTN1</a></li>
<li class="tb-two"><a href="#tabtwo">BTN2</a></li>
<li class="tb-three"><a href="#tabthree">BTN3</a></li>
<li class="tb-four"><a href="#tabfour">BTN4</a></li>
</ul>
<div class="list-wrap">
<ul id="description">
<li>Hello, I am a description</li>
</ul>
<ul id="tabtwo" class="hide">
<li></li>
</ul>
<ul id="tabthree" class="hide">
<li></li>
</ul>
<ul id="tabfour" class="hide">
<li></li>
</ul>
</div> <!-- END List Wrap -->
</div> <!-- END Organic Tabs -->
这是我当前的 jQuery:
$(document).ready(function () {
var tabContent = $('ul.list-wrap').find('li').text();
if ($.trim(tabContent) === "") {
$('ul.nav li').hide();
}
});
我想要做的只是 jQuery 检查 .list-wrap 中的每个 li,如果 li 为空,则删除 .nav 中的相应 li,因为这是用于选项卡系统的,如果没有内容进入,他们不希望它显示。
对新手有什么建议吗?
尼克
最佳答案
我将遍历列表项,检查每个节点文本的长度,并隐藏相应的选项卡:
$('.list-wrap li').each(function(i){
if(!$(this).text().length) $('#mainpage-tabs-area li').eq(i).hide();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="mainpage-tabs-area">
<ul class="nav cf">
<li class="tb-one"><a href="#description" class="current">BTN1</a>
</li>
<li class="tb-two"><a href="#tabtwo">BTN2</a>
</li>
<li class="tb-three"><a href="#tabthree">BTN3</a>
</li>
<li class="tb-four"><a href="#tabfour">BTN4</a>
</li>
</ul>
<div class="list-wrap">
<ul id="description">
<li>Hello, I am a description</li>
</ul>
<ul id="tabtwo" class="hide">
<li></li>
</ul>
<ul id="tabthree" class="hide">
<li></li>
</ul>
<ul id="tabfour" class="hide">
<li></li>
</ul>
</div>
<!-- END List Wrap -->
</div>
<!-- END Organic Tabs -->
each()
函数中的 i
是循环所在元素的索引,它允许您定位相应的选项卡元素并将其隐藏.
关于javascript - 如何在另一个div为空时隐藏一个div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31614691/