Jquery 试图将其变为空<;李>;标签在页面加载时隐藏

Jquery 试图将其变为空<;李>;标签在页面加载时隐藏,jquery,hide,element,show,Jquery,Hide,Element,Show,我目前的代码是: <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();

我目前的代码是:

<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>

$('li.nav:empty').hide();
行元素根据用户权限自动填充到应用程序中。导航中有多个此类链接的实例

此解决方案适用于我正在使用的另一个应用程序,但由于某些原因,它不适用于我当前的应用程序


上面的代码只是一个示例,而不是直接复制和粘贴。BR标记在实际应用程序中不存在,填充文本也不存在。

首先,您需要从li中删除

将脚本放入准备好DOM的处理程序中

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

$(函数(){
$('li.nav:empty').hide();
});       
:空
说明:选择没有子元素的所有元素(包括文本节点)

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

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

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

如果要隐藏没有文本的li元素,可以使用以下方法:

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

您是否收到任何脚本错误?您是否真的在代码中包含了所有这些

元素,或者这是您用来剪切和粘贴代码段的东西的产物?您缺少了一个
如果这应该是一个注释?下面是一个例子,看起来他的脚本低于实际的html