2012-11-29 76 views
1

我只是试图从我的主页中删除页脚。jquery .remove()不按预期方式工作

if (OBJECT.Homepage.isHomePage == true){ 
    jQuery('footer').remove(); 
} 

看来.remove()正在做更多的显示:none;而不是实际从DOM中删除节点。当我查看页面源文件时,页脚仍然存在 - 虽然它不显示内容,但是有很大的垂直滚动,就好像页脚的高度仍在应用。

我认为这可能与使用页脚标签而不是#footer有关,但是当我这样做时,我得到了相同的结果。

+0

是否#footer的具有高度规定?你能给我们代码吗?这听起来像一些元素有一个高度定义,因为显示:没有人会消除该元素的任何高度。 – PCasagrande

+2

删除元素完全将其从dom中删除。查看页面的源代码并不会告诉你当前或不在dom中的元素,它是JavaScript处理它之前浏览器返回的快照。更可能你的问题是一个CSS问题,元素被正确删除。 –

+0

是的,如果可能的话,请提供所有相关的代码,remove()方法应该从DOM中删除该元素,并具有以前的经验。 #footer只有在您将页脚标记的id属性设置为'footer'时才会准确选择,因为它值得 – Michael

回答

4
<input type="button" value="remove footer"/> 
<footer>test</footer>​ 

JS:

$("input").click(function(){$("footer").remove();})​ 

http://jsfiddle.net/9unpH/看到这个演示。它工作正常。

当我查看网页源页脚仍然存在

我猜你是usign像点击鼠标右键 - >查看网页源代码,如果是的话 - 比一切是正确的。它不会包含JS所做的更改,只是显示它从服务器获得的内容(甚至更多 - 浏览器可能会向服务器发送另一个请求以获取HTML查看源)。

尝试使用的开发工具查看由JS所做的更改(F12在所有浏览器,在FF您可能需要安装萤火虫)

有一个大的垂直滚动,仿佛页脚的高度仍然是 申请。

想这是因为你的页面上的一些其他风格,不会因为footer

+0

谢谢,我确实使用Chrome的检查员注意到了这一点。额外的垂直滚动是另一个div的样式结果。再次感谢你的帮助 – user1380540