javascript - 如何在另一个div为空时隐藏一个div

标签 javascript jquery html css

我是 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/

相关文章:

jquery - $.each() 在页面中选择并获取迭代选项

javascript - 向上滚动页面时添加类

java - 在 JScrollPane 内的 JEditorPane 中包装 HTML 文本

javascript - 在网站中处理 SQL 响应的位置

javascript - 发送多个 JSON 请求会产生 500 错误

javascript - 如果类(class)也是类(class),那么..单击时移动事件类(class)

javascript - 意外的按钮点击行为。

javascript - 为什么这个 .push() 没有按预期工作?

php - 如何使用 Ajax 从 MySQL 获取信息?

javascript - 在重定向到不同功能的同一功能上使用多个按钮