Javascript EJS无法访问DOM元素,导致未定义
我试图通过VanillaJS或jQuery选择DOM元素。无论哪种方式,它们都会在我的ejs文件中生成未定义的内容 我在ejs顶部加载所有库 在页面中间我有一个简单的Javascript EJS无法访问DOM元素,导致未定义,javascript,ejs,Javascript,Ejs,我试图通过VanillaJS或jQuery选择DOM元素。无论哪种方式,它们都会在我的ejs文件中生成未定义的内容 我在ejs顶部加载所有库 在页面中间我有一个简单的 <% if (somevariable < 1) { %> <!-- do something --> <script> document.getElementById("showorders").style.visibility = "hidden" </script&
<% if (somevariable < 1) { %>
<!-- do something -->
<script> document.getElementById("showorders").style.visibility = "hidden" </script>
<% } %>
document.getElementById(“showorders”).style.visibility=“hidden”
再往下一页,我有一个id为“showorders”的表格
如果该语句为true,我只想将表的可见性设置为hidden。否则继续运行页面并执行正常流程
为什么值未定义?出现此问题的原因可能是脚本中引用了一个不存在的元素。
您应该等待DOM加载事件 香草的
<% if (somevariable < 1) { %>
<!-- do something -->
<script>
document.addEventListener("DOMContentLoaded, function() {
document.getElementById("showorders").style.visibility = "hidden";
}, false);
</script>
<% } %>
addEventListener(“DOMContentLoaded,function(){
document.getElementById(“showorders”).style.visibility=“hidden”;
},假);
jQuery
<% if (somevariable < 1) { %>
<!-- do something -->
<script>
jQuery(function() {
jQuery("#showorders").css("visibility", "hidden");
});
</script>
<% } %>
jQuery(函数(){
jQuery(“#showorders”).css(“可见性”、“隐藏”);
});
出现此问题的原因可能是脚本中引用了一个不存在的元素。您应该等待DOM加载事件 香草的
<% if (somevariable < 1) { %>
<!-- do something -->
<script>
document.addEventListener("DOMContentLoaded, function() {
document.getElementById("showorders").style.visibility = "hidden";
}, false);
</script>
<% } %>
addEventListener(“DOMContentLoaded,function(){
document.getElementById(“showorders”).style.visibility=“hidden”;
},假);
jQuery
<% if (somevariable < 1) { %>
<!-- do something -->
<script>
jQuery(function() {
jQuery("#showorders").css("visibility", "hidden");
});
</script>
<% } %>
jQuery(函数(){
jQuery(“#showorders”).css(“可见性”、“隐藏”);
});
当浏览器遇到脚本
标记时,它会停止解析页面并运行脚本。这就是document.write
在页面当前位置添加内容的方式
如果希望脚本在DOM完全解析后运行,则应该侦听DOMContentLoaded事件
document.addEventListener("DOMContentLoaded", function(event) {
document.getElementById("showorders").style.visibility = "hidden"
});
当浏览器遇到
脚本
标记时,它会停止解析页面并运行脚本。这就是document.write
在页面当前位置添加内容的方式
如果希望脚本在DOM完全解析后运行,则应该侦听DOMContentLoaded事件
document.addEventListener("DOMContentLoaded", function(event) {
document.getElementById("showorders").style.visibility = "hidden"
});
谢谢你。也很有帮助的评论。正如您所指出的,我试图在DOM完全加载之前进行声明,导致未声明。谢谢您。也很有帮助的评论。正如您所注意到的,我试图在DOM完全加载之前进行声明,导致未声明。不错的选择:-)不错的选择:-)