javascript - 如果 li 为空,则在 jQuery 中隐藏 excluding span 属性

标签 javascript jquery html css

我有各种产品,我们在列表中列出了字段/属性。有时一些属性是空的。当我尝试使用 jQuery 隐藏它们时,li 元素包含字段名称这一事实导致脚本无法执行。

如何在 span 字段存在时隐藏整个 li(在本例中为:条形码、注释)?

   $('ul li').each(function() {
    if ($(this).text().length < 1)
        $(this).hide();
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="bookprofile">
    <li class="barcode"><span style="color:#333;font-weight:bold">Barcode: </span></li>
    <li class="bookauthor"><span style="color:#333;font-weight:bold">Book Author: </span>Entry</li>
    <li class="format"><span style="color:#333;font-weight:bold">Format: </span>Entry</li>
    <li class="pubdate"><span style="color:#333;font-weight:bold">Publication Date: </span>Entry</li>
    <li class="publisher"><span style="color:#333;font-weight:bold">Publisher: </span>Entry</li>
    <li class="notes"><span style="color:#333;font-weight:bold">Notes: </span></li>
    <li class="rank"><span style="color:#333;font-weight:bold">Rank: </span>Entry</li>
    </ul>

最佳答案

您可以将属性包含在一个额外的元素中:

$('.bookprofile li').each(function() {
  if ($(this).find('.properties').text().length < 1)
    $(this).hide();
});
.bookprofile .barcode .label {
  color: #333;
  font-weight: bold;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<ul class="bookprofile">
    <li class="barcode"><span class="label">Barcode: </span><span class="properties"></span></li>
    <li class="bookauthor"><span class="label">Book Author: </span><span class="properties">Entry</span></li>
    <li class="format"><span class="label">Format: </span><span class="properties">Entry</span></li>
    <li class="pubdate"><span class="label">Publication Date: </span><span class="properties">Entry</span></li>
    <li class="publisher"><span class="label">Publisher: </span><span class="properties">Entry</span></li>
    <li class="notes"><span class="label">Notes: </span><span class="properties"></span></li>
    <li class="rank"><span class="label">Rank: </span><span class="properties">Entry</span></li>
</ul>

关于javascript - 如果 li 为空,则在 jQuery 中隐藏 excluding span 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49876867/

相关文章:

javascript - Node.js 是否是单线程的?

javascript - window.location.href 导致动画 gif 加载器在 Firefox 中卡住

jquery - 如何检索类的属性

javascript - 如何将 HTML block 设置为按钮?

javascript - 如何使用 JavaScript 为简单的进度条制作动画?

javascript - 如何从React根组件获取数据?

javascript - 用于解析数学表达式的正则表达式?

javascript - Spreaded Array 上的意外结果拼接

jquery - 加载时更改 Ladda Bootstrap 按钮的标签文本

php - 如何多次加载AJAX来分别更改页面(页码)?