我试图使用javascript在我的网站上隐藏div。
HTML:
<div class="portlet-boundary portlet-boundary_39_ portlet-borderless portlet-rss portlet-draggable yui3-dd-drop" id="p_p_id_39_INSTANCE_gUlP5HeyQaiq_">
JAVASCRIPT:
document.getElementById('p_39_INSTANCE_gUlP5HeyQaiq').style.display="none";
我收到了这个错误: 未捕获的TypeError:无法设置属性&#39; style&#39;为null
我顺便使用了Liferay。有人知道我的问题在哪里?提前谢谢。
答案 0 :(得分:2)
原则上工作正常:
function hide() {
document.getElementById("p_p_id_39_INSTANCE_gUlP5HeyQaiq_").style.display = "none";
}
<div class="portlet-boundary portlet-boundary_39_ portlet-borderless portlet-rss portlet-draggable yui3-dd-drop" id="p_p_id_39_INSTANCE_gUlP5HeyQaiq_">GOODBYE</div>
<button onclick="hide()">Hide</button>
如果您修复了ID以确保它完全相同,那么要检查的另一件事是确保在调用JS行时<div>
存在。您可以将<script>
移动到<body>
的末尾,或者将调用包装在一个处理程序中,以确保仅在加载所有HTML后调用它。
答案 1 :(得分:1)
您需要确保DIV上的id
与您在javascript中使用的<div class="portlet-boundary portlet-boundary_39_ portlet-borderless portlet-rss portlet-draggable yui3-dd-drop" id="p_p_id_39_INSTANCE_gUlP5HeyQaiq_">
相同,而在您的情况下则不是。
将此<div class="portlet-boundary portlet-boundary_39_ portlet-borderless portlet-rss portlet-draggable yui3-dd-drop" id="p_p_id_39_INSTANCE_gUlP5HeyQaiq_">I AM HIDDEN</div>
替换为此
document.getElementById('p_p_id_39_INSTANCE_gUlP5HeyQaiq_').style.display="none";
。
<强>的Javascript 强>
在你的javascript中,确保ID是相同的。
{{1}}
答案 2 :(得分:0)
将js更改为此,并在加载所有元素后执行javascript代码。如果您已经修复了ID,但仍然无效,请记住将脚本标记放在正文中的所有元素之后,并在正文结束之前。
document.getElementById('p_p_id_39_INSTANCE_gUlP5HeyQaiq_').style.display="none"