未捕获的TypeError:无法读取属性“样式”(JS-OnClick事件)

时间:2018-08-15 20:49:05

标签: javascript asp.net

有很多标题相同的问题,我找不到在该位置存在问题的任何问题。

我要做什么: 单击的div,然后更改另一个div。

代码:

function divOne_Click() {
  var x = document.getElementById("divMenuOne");
  if (x.style.display == "none") {
    x.style.display = "block";
  } else {
    x.style.display = "none";
  }
}
            <div class="MobileContentTitle" onclick="divOne_Click()">
            <p style="font-size: 18px; font-weight: bold; color: #FFFFFF;">Box One Title</p>
        </div>
        <div class="MobileContentMenu" id="divMenuOne" runat="server">
        <asp:Repeater ID="rpt_menu_1" runat="server">
            <HeaderTemplate>
                <table id="tbl_menu" align="center" >
                    <tr class="MenuTR">
                        <td><asp:Label ID="lbl_menuItemDescHead" runat="server" Text=""></asp:Label></td>
                        <td><asp:Label ID="lbl_menuPriceHead" runat="server" Text=""></asp:Label></td>
                    </tr>
            </HeaderTemplate>
            <ItemTemplate>
                    <tr class="MenuTR">
                        <td>
                            <asp:Label ID="lbl_menuitem" runat="server" Text='<%#Eval("MenuItemDesc") %>' CssClass="MenuDesc"></asp:Label>
                        </td>
                        <td>
                            <asp:Label ID="lbl_menuprice" runat="server" Text='<%#Eval("MenuItemPrice", "{0:C}") %>' CssClass="MenuPrice"></asp:Label>
                        </td>
                    </tr>
            </ItemTemplate>
            <FooterTemplate></table></FooterTemplate>
        </asp:Repeater>
     </div>

1 个答案:

答案 0 :(得分:0)

基于.aspx页面提供的摘要很难确定,但是{{1}可能会使divMenuOne的ID在浏览器中显示时发生变化。 }}。来自服务器的元素可能会更改其客户端ID,尤其是当它们位于另一个控件(如转发器或用户控件)中时。

在这种情况下,我建议按元素的类别而不是其ID选择元素。