关闭iframe后如何关闭父p标签?

时间:2012-11-21 07:47:36

标签: javascript jquery jsp

我有一个iframe,它弹出来了。正上方是一个由关闭按钮组成的p标签。

现在,点击框架上的其中一个链接,我就像这样关闭它:

 window.parent.document.getElementById('myIframeId').
 parentNode.removeChild(window.parent.document.getElementById('myIframeId'));

但是,p标记仍然存在且不会关闭。这是代码:

<p class="close"><a href="#"><img src="buttonClose.jpeg" alt="Close"/></a></p>
<iframe id="myIframeId" style="display:none;" height="430" width="675" src="myjsp.jsp" ></iframe>

当我在firebug中看到时,我可以看到iframe标签不再存在,但是p标签仍然存在并且如果没有通过单击关闭图标手动关闭它也不会关闭。

编辑:在David的建议之后,我在div中包含了bot标签:

<div id = "closeModal">
<p class="close"><a href="#"><img src="buttonClose.jpeg" alt="Close"/></a></p>
<iframe id="myIframeId" style="display:none;" height="430" width="675" src="myjsp.jsp" ></iframe>
</div>

然而,每次我使用david的建议关闭iframe时,动态div都会像这样添加:

<div id="myContainerModal" class="" style="z-index: 9999; width: 675px; position: absolute; top: 75px; left: 290px; opacity: 0.999999;">
<div id = "closeModal">
<p class="close"><a href="#"><img src="buttonClose.jpeg" alt="Close"/></a></p>
<iframe id="myIframeId" style="display:none;" height="430" width="675" src="myjsp.jsp" ></iframe>
</div>
</div>

现在我怎么能摆脱动态div:myContainerModal,它不会走出屏幕?

关闭iframe后如何关闭此p标签?请帮助。

3 个答案:

答案 0 :(得分:4)

您可以访问#myIframeId的{​​{1}} previousElementSibling

p

但是,如果将var iframe = window.parent.document.getElementById('myIframeId'); iframe.parentNode.removeChild(iframe.previousElementSibling); iframe.parentNode.removeChild(iframe); 中的两个元素包装起来并按ID而不是iframe删除,那么它就会变得更加简洁,而且可能更整洁。

HTML:

div

JS:

<div id="iframe-container">
   <p class="close">...</p>
   <iframe>...</iframe>
</div>

答案 1 :(得分:4)

您可以使用:

var p = document.getElementsByClassName("close")[0]
p.parentNode.removeChild(p);

最好在p中添加id="someName",但是这样:

<p class="close" id="close"><a href="#"><img src="buttonClose.jpeg" alt="Close"/></a></p>
<iframe id="myIframeId" style="display:none;" height="430" width="675" src="myjsp.jsp" ></iframe>​

然后你可以按如下方式删除它:

var p = document.getElementById("close")
p.parentNode.removeChild(p);

这将阻止您将索引([0])硬编码到您的js中。

答案 2 :(得分:0)

您可以按类名找到P标签,然后您也可以尝试删除它。