2016-11-24 119 views
-1

我想在我的网站上使用javascript来隐藏div。用JavaScript隐藏div 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"; 

我得到这个错误: 遗漏的类型错误:无法设置属性 '风格' 空的

我使用的Liferay由办法。有人知道我的问题在哪里?提前致谢。

+0

该ID与元素上的ID不同。 'id =“p_p_id_39_INSTANCE_gUlP5HeyQaiq_”' – 2016-11-24 00:56:29

+0

谢谢,刚刚纠正,但它仍然无法正常工作。总是这个消息错误 –

+0

请确保你有一个唯一的ID,否则它将无法按预期工作。 – claudios

回答

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_">I AM HIDDEN</div>替换此<div class="portlet-boundary portlet-boundary_39_ portlet-borderless portlet-rss portlet-draggable yui3-dd-drop" id="p_p_id_39_INSTANCE_gUlP5HeyQaiq_">

Javascript
在你的javascript中,确保ID是相同的寿。原则上

document.getElementById('p_p_id_39_INSTANCE_gUlP5HeyQaiq_').style.display="none";

+0

您是否报告了错字?这是一个紧密的原因,可能带有评论,允许OP在获得答案之前轻松删除他/她的帖子。 – 2016-11-24 03:05:15

1

正常工作:

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后调用它。

+0

“Works fine”不是答案;这是对“不可重现”和/或评论的密切投票。 – 2016-11-24 03:03:59

+0

@torazaburo编辑我的答案,包括可能的修复。我仍然在学习这些内容:) –

0

将js更改为此,并且在所有元素加载后执行javascript代码。如果您已经修复了ID,但仍然无法使用,请记住将脚本标记放置在body内的所有元素之后,并且在body关闭之前。

document.getElementById('p_p_id_39_INSTANCE_gUlP5HeyQaiq_').style.display="none"