使用JavaScript

时间:2016-11-24 00:55:48

标签: javascript html css getelementbyid

我试图使用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。有人知道我的问题在哪里?提前谢谢。

3 个答案:

答案 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"