如何用JavaScript访问asp.net母版页中的元素ID ?

How do I access the element ID in an asp.net masterpage with JavaScript?

本文关键字:元素 ID 母版页 net 何用 JavaScript 访问 asp      更新时间:2023-09-26

我知道这个问题有几个答案。

通常网上给出的答案包括这样做…
document.getElementById (<%=myElementID.ClientID %>);

而不是this…

document.getElementById("myElementID");

但是,即使使用第一种方法,我的JavaScript代码仍然找不到元素。它告诉我这个元素没有定义。

所以…只是为了测试…我试图剥离我所有的JavaScript代码和访问元素的警告框,像这样的…

<script type="text/javascript">
    alert(document.getElementById('<%=searchHyperLink.ClientID %>').value);
</script>

它仍然告诉我它未定义。

但它不是没有定义的!当我查看页面源时,<%=searchHyperLink呈现的id。ClientID %>与我要查找的控件的id完全匹配。

有什么建议吗?

扩展Evan的评论,如果您在文档顺序中元素之前的脚本标记中执行document.getElementById,则它将返回undefined。试试这个:

<html>
  <head>
    <script>
        function postLoadFn() {
            alert(document.getElementById('<%=searchHyperLink.ClientID %>').innerHTML);
        }
    </script>
  </head>
  <body onload="postLoadFn();">
    <!-- Your markup here -->
  </body>
</html>

我已经使用parent来访问我的项目asp.net masterpage(home.master)的更高级别。

代替:

document.getElementById (<%=myElementID.ClientID %>);

使用:

parent.window.document.getElementById (<%=myElementID.ClientID %>);