Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript webforms:如果项被隐藏,如何删除DOM元素_Javascript_Jquery_Asp.net_Html_Webforms - Fatal编程技术网

Javascript webforms:如果项被隐藏,如何删除DOM元素

Javascript webforms:如果项被隐藏,如何删除DOM元素,javascript,jquery,asp.net,html,webforms,Javascript,Jquery,Asp.net,Html,Webforms,我在一个小型asp.net项目中使用的水平导航有一个问题。 nav包含一个登录、配置文件和注销锚点,无论您是否登录,都会显示这些锚点 我通过在代码隐藏中设置.Visible属性来实现这种行为 现在我想在每个元素后面添加一个管道作为“分隔器”。这不能是实际列表项本身的一部分,因为它会影响a:hover效果 但是,即使元素不在DOM树中,也会显示die pipe divider。 看起来像 登录||| 我已经试着用计算机解决它了 if ($("li.nav-item").length == 0) {

我在一个小型asp.net项目中使用的水平导航有一个问题。 nav包含一个登录、配置文件和注销锚点,无论您是否登录,都会显示这些锚点

我通过在代码隐藏中设置.Visible属性来实现这种行为

现在我想在每个元素后面添加一个管道作为“分隔器”。这不能是实际列表项本身的一部分,因为它会影响a:hover效果

但是,即使元素不在DOM树中,也会显示die pipe divider。 看起来像

登录|||

我已经试着用计算机解决它了

if ($("li.nav-item").length == 0) {
            $('span.divider').remove();
        }
        if ($("li.nav-item").length > 0 && $("li.nav-item").is(':visible')) {
            $('<span class="divider"> | </span>').appendTo('li.nav-item');
        }
if($(“li.nav项目”).length==0){
$('span.divider').remove();
}
如果($(“li.nav项”).length>0&($(“li.nav项”).is(':visible')){
$(“|”).appendTo('li.nav item');
}
但这不起作用。我怎样才能解决这个问题

亲切的问候

/编辑:html标记(编辑的ID)

如果(会话[“svar_loggedin”]!=null) { linkLogin.Visible=false; linkProfile.Visible=true; linkLogout.Visible=true; } 其他的 { linkLogin.Visible=true; linkProfile.Visible=false; linkLogout.Visible=false; }
试试这个js:

$.each($("li.nav-item").children("a").filter(":visible"), function (e) {
    $('<span class="divider"> | </span>').appendTo($(this));
});
或alt.遍历控件,检查visible==true,如果是,则将span标记添加到文本属性

尝试以下方法:

$.each($("li.nav-item").children("a").filter(":visible"), function (e) {
    $('<span class="divider"> | </span>').appendTo($(this));
});
  $(function () {
        var elements = $('li.nav-item > a').filter(':visible');
        for (var i = 0; i < elements.length - 1; i++) {
            elements.eq(i).append($('<span class="divider"> | </span>'));
        }

    });
或alt.遍历控件,检查visible==true是否可见,如果是,则将span标记添加到文本属性

$(函数(){
  $(function () {
        var elements = $('li.nav-item > a').filter(':visible');
        for (var i = 0; i < elements.length - 1; i++) {
            elements.eq(i).append($('<span class="divider"> | </span>'));
        }

    });
变量元素=$('li.nav-item>a')。过滤器(':visible'); 对于(var i=0;i
就我而言,这就成功了。我没有意识到我的代码在改变asp:Hyperlink控件,而不是列表项

我相应地修改了Jquery代码片段,使其与所有锚点相关,这些锚点是类为“nav item”的列表项的子项

谢谢你们让我重回正轨

$(函数(){
变量元素=$('li.nav-item>a')。过滤器(':visible');
对于(var i=0;i
就我而言,这就成功了。我没有意识到我的代码在改变asp:Hyperlink控件,而不是列表项

我相应地修改了Jquery代码片段,使其与所有锚点相关,这些锚点是类为“nav item”的列表项的子项


谢谢你们让我重回正轨

你为什么不用边框呢?它们本机隐藏隐藏的元素,不需要javascript,也不会产生无意义布局元素的讨厌效果。因为管道是显式请求的。为什么不使用边框?它们本机隐藏隐藏的元素,不需要javascript,也不会产生无意义布局元素的恶劣影响。因为管道是显式请求的。具有visible的过滤器不起作用。由于元素可见性是通过asp.net.visible属性在codebehind中设置的,因此它在DOM树中不可用。如果没有,则添加了管道。我决定使用属性。现在,我需要拿出一个jQuery代码片段,以便在元素不可见时删除管道。我需要删除哪个属性才能使项目不可见?如果不加载整页,可见元素是否可以不可见?如果没有,那么上面的代码应该可以工作。。。我仍然有三重管道的问题。我想我找到了问题的根源。在Codebehind中,我正在处理asp:hyperlink控件并隐藏它们。相应的列表项仍然可见。这就是渲染管道的原因。因此,我需要找到一个li.nav-item,它的子项(?)是可见的。由于元素可见性是通过asp.net.visible属性在codebehind中设置的,因此它在DOM树中不可用。如果没有,则添加了管道。我决定使用属性。现在,我需要拿出一个jQuery代码片段,以便在元素不可见时删除管道。我需要删除哪个属性才能使项目不可见?如果不加载整页,可见元素是否可以不可见?如果没有,那么上面的代码应该可以工作。。。我仍然有三重管道的问题。我想我找到了问题的根源。在Codebehind中,我正在处理asp:hyperlink控件并隐藏它们。相应的列表项仍然可见。这就是渲染管道的原因。所以我需要找到一个li.nav-item,它的子(?)是可见的。我是对的,如果你发布了客户端html标记,你会更快地收到答案。我是对的,如果你发布了客户端html标记,你会更快地收到答案。