在页面加载时尝试隐藏空的<li>标签

3

我的当前代码如下:

<ul>
<li class="nav">
<-- uc tag with hyperlink that show/hides based on a code behind & user rights. --><br />
</li>
</ul>

<script type="text/javascript" >
    $('li.nav:empty').hide();       
</script>

根据用户权限,线条元素会自动出现在应用程序中。导航中有多个这种类型的链接。

这种解决方案在我之前使用的不同应用程序中有效,但是在我的当前应用程序中由于某些原因无法正常工作。

上面的代码仅为示例-不是直接复制和粘贴。实际应用程序中不存在BR标签,也不存在占位文本。


你有收到任何脚本错误吗? - Jason McCreary
1
你实际上是在代码中包含所有这些<br/>元素,还是这是你用来剪切和粘贴片段的工具的产物? - Palpatim
2
如果那是一条注释,你漏掉了一个 ! - adeneo
1
这是一个FIDDLE - adeneo
3个回答

1

首先,您需要从li标签内部删除

将您的脚本包含在DOM就绪处理程序中。

<script type="text/javascript">
   $(function () {
      $('li.nav:empty').hide();
    });       
</script>

4
似乎他的脚本在实际的 HTML 代码之下。 - Selvakumar Arumugam

1
如果您想隐藏没有文本的li元素,可以使用以下代码:
$('li.nav').filter(function(){return $(this).text().trim().length==0}).hide();

演示


0

:empty 描述:选择所有没有子元素(包括文本节点)的元素。

我认为你的 $('li.nav:empty') 不是空的,因为有一些文本节点。

你应该写一个过滤器。

$('li.nav').filter(function () { return $.trim($(this).text()); }).hide();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接