gpt4 book ai didi

javascript - jQuery 找不到具有指定 id 的元素

转载 作者:行者123 更新时间:2023-11-28 14:52:13 27 4
gpt4 key购买 nike

我已经开始使用.NET Core 来开发 ASP 网站,所以我想尝试一些我以前没有尝试过的东西。我将创建一个全局对象,我可以从任何页面调用函数,因为我有一个所有页面都使用特定布局文件的设置。

所以我在这里得到了这个设置:

<html>
<header>
<css and meta stuff>
</header>
<body>
<navbar....>
<sidebar...>
<div id="render-body">@RenderBody</div>
<layout-footer....>
<script inclusions>
</body>
</html>

@RenderBody()被调用时,一个HTML页面将作为浏览器接收到的实际页面,位于两个div标签之间。

我想做的是创建一个可以隐藏侧边栏的函数,因为您可能并不总是需要它,因此应该可以简单地隐藏它。

所以我写了下面的代码:

var UniHub = {
ToggleContextSidebar: function () {
var $sidebarAndBody = $("#render-body", "#context-sidebar");
$sidebarAndBody.toggleClass("hide-context-sidebar");
}
};

理论上哪个应该有效?但事实并非如此。代码调用得很好,但是没有找到#render-body和#context-sidebar。当我调试时,我发现 $sidebarAndBody 元素的长度为 0。因此,toggleClass() 实际上并未将类应用于两个 div 中的任何一个。

当我按下测试按钮时它们就出现了:enter image description here

那为什么会这样呢?

最佳答案

您正在关闭#context-sidebar,然后打开#render-body,因此#render-body不在上下文中(内)的#context-sidebar。因此没有匹配的元素。

编辑:如果你想要这两个元素,你可以这样做:

$sidebarAndBody = $("#render-body, #context-sidebar");

如果您只想定位侧边栏,只需使用 $("#context-sidebar");

编辑:显示 jQuery 上下文:

console.log("# of body elems inside html:", $("body", "html").length);
console.log("# of body elems inside head:", $("body", "head").length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于javascript - jQuery 找不到具有指定 id 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44101299/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com