jquery 不能在具有 id 的 div 中工作

标签 jquery html css asp.net twitter-bootstrap

我有这个网站,我从 W3School 复制了一些 Jquery 来打开/关闭按钮隐藏。但是如果我把这个<div><p>在我制作的 div 中标记以像窗口一样运行。它只是行不通。在整个页面中它都有效,除了<div id="BoxWithPhotoAndBtn">这怎么可能?我在 bootstrap 和 ASP.net 中工作。

 <script>
        $(document).ready(function () {
            var phide = 'phide';

$("#bHide").click(function () {
    $("#phide").toggle();
}); 
});
</script>

<div class="container">

     <!-- Modal messageModel -->
    <div class="modal fade" id="messageModal" role="dialog">
        <div class="modal-dialog modal-lg">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                    <h4 class="modal-title">
                        <asp:Label ID="lblMessageTitle" CssClass="black" runat="server"></asp:Label></h4>
                </div>
                <div class="modal-body">

                    <p id="lblModelMessage" class="black" runat="server"></p>

                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                </div>
            </div>
        </div>
    </div>

                             <!-- this works just fine
                            <p id="phide">This is a paragraph.</p>

<div id="bHide">Toggle between hide() and show()</div> -->


     <img runat="server" src="#" class="imgAvatarSmallPE" id="imgAvatarSmall" />
<div id="BoxWithPhotoAndBtn">
                             <!-- this doesn't work -->
                            <p id="phide">This is a paragraph.</p>

<div id="bHide">Toggle between hide() and show()</div>
    <!-- create account fot this person -->
    <div id="membershipBoxPE">Membership Card</div>
    <div id="membershipCardPE">

    </div>
    <h2 runat="server" id="fullName" class="fullNamePE"></h2>
    <div id="buttonInBox"> 



        <span id="glypiconUserColor" class="glyphicon glyphicon-user fontSizeGlyphiconPE"></span> <p class="pinBoxPE"> Create account for this person</p>
        <hr class="lineInBoxPE"/>
        <span id="glypiconClockColor" class="glyphicon glyphicon-time fontSizeGlyphiconPE"></span> <p class="pinBoxPE"> Trained 31 times this Month</p>
        <hr class="lineInBoxPE" />
    </div>
    <asp:Image runat="server" CssClass="imgLevelPatchPE" ID="imgLevelPatch" />
    <p class="logedInPPE">This Person has logged in 1 time</p>
</div>

这是我从中获取的副本

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("button").click(function(){
        $("p").toggle();
    });
});
</script>
</head>
<body>

<p>This is a paragraph.</p>

<button>Toggle between hide() and show()</button>

</body>
</html>

最佳答案

当您使用asp.net 控件时,ID 是通过asp.net 引擎动态生成的(除非您使用staticID 模式)。因此它们不会完全按照您声明它们的方式出现在呈现的 DOM 中。为了在 asp.net 元素上应用正确的选择器,您需要通过 ClientID 属性使用服务器端表达式。

例如:

 <img runat="server" src="#" class="imgAvatarSmallPE" id="imgAvatarSmall" />

可以通过 jquery 访问:

var id = '#<%=imgAvatarSmall.ClientID%>';
$(id).hide();

关于jquery 不能在具有 id 的 div 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33766435/

相关文章:

javascript - 单击下拉导航菜单(第 2 部分)

jquery - 使用单击事件调用方法 'trigger' 时的复选框值

html - 为什么我的列表不像我的 Logo 文本那样居中?

javascript - 如何在 Rdio Web 播放 API 示例中启动服务器?

javascript - 属性失效值用js修改伪元素

javascript - 通过单击替换 Bootstrap 模态的主体

jquery - 使用 Angularjs 动态生成之前/之后的 CSS 伪内容

jquery - 单击大纲?

Javascript 在主页中突出显示我的所有菜单项

html - 呈现不同字体的最佳方式