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 标签在实际应用中不存在,填充文本也不存在。

4

3 回答 3

1

首先,您需要
从 li 内部移除 ..

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

<script type="text/javascript">
   $(function () {
      $('li.nav:empty').hide();
    });       
</script>
于 2012-11-05T19:01:06.057 回答
1

如果你想隐藏没有文本的 li 元素,你可以使用这个:

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

示范

于 2012-11-05T19:05:04.760 回答
0

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

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

您可能应该编写一个过滤器。

$('li.nav').filter(function () { return $.trim($(this).text()); }).hide();
于 2012-11-05T19:04:35.340 回答