页面加载时根据div值控制另一个div的CSS显示状态问题排查
解决div内容判断后隐藏元素的问题
你的代码失效的核心原因很明确:普通<div>元素没有value属性,你用document.getElementById("attorney").value根本拿不到它里面的文本内容,这就导致后续的判断逻辑完全无法触发。
这里给你修正后的代码,直接就能用:
<script type="text/javascript"> function myfunc(){ // 用textContent获取div内部文本,同时trim掉前后的空白字符 var atty = document.getElementById("attorney").textContent.trim(); if (atty === '0'){ document.getElementById("profiletab1").style.display = "none"; } } window.onload = myfunc; </script>
再给你拆解一下关键修改点:
- 替换
.value为.textContent:这是获取普通元素内部文本的标准方法,所有现代浏览器都支持,比innerText更可靠(innerText会受CSS样式影响,比如隐藏的文本不会被获取)。 - 加上
.trim():你的原HTML里<div id="attorney"> 0 </div>的0前后有空格,直接获取的话文本是" 0 ",和'0'严格相等判断会失败,用trim()可以去掉前后的空白字符,确保判断准确。
另外,如果你想让代码更早执行(不需要等页面所有资源加载完成,比如图片),可以把window.onload换成DOMContentLoaded事件,效果一样但执行时机更早:
document.addEventListener('DOMContentLoaded', function() { var atty = document.getElementById("attorney").textContent.trim(); if (atty === '0'){ document.getElementById("profiletab1").style.display = "none"; } });
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

