如何使用Javascript删除div元素?

如何使用Javascript删除div元素?,javascript,html,Javascript,Html,假设我有一个网页,我感兴趣的是id为“content”的div,即: 如何删除所有其他div元素,并只显示所需的div var all_div_nodes = document.querySelectorAll('div'), len = all_div_nodes.length, current = null; while( len-- ) { current = all_div_nodes[len]; if( curren

假设我有一个网页,我感兴趣的是id为“content”的div,即:


如何删除所有其他div元素,并只显示所需的div

var all_div_nodes = document.querySelectorAll('div'),
    len           = all_div_nodes.length,
    current       = null;

while( len-- ) {
    current = all_div_nodes[len];
    if( current.parentNode ) {
        if( current .id !== 'content' )
            current .parentNode.removeChild( current );
    }
}
如果您能负担得起使用jQuery这样的库的费用,那么这将更加简单:

$('div').not('#content').remove();

如果要使用jQuery删除同级div,可以编写:

$("#content").siblings("div").remove();

是否确实要“删除所有其他div元素”?从整个页面?我想你只是想删除同级
div
元素,即不是祖先(这意味着删除
#content
节点本身)也不是后代…如果你的div包含在另一个div中怎么办?@thirtydot是的,因为我只对网页的内容感兴趣,如果网页有像#nav,#footer,#头是父节点,我不想要它。。。我想要的只是#content及其子元素…使用
document.getElementsByTagName
而不是
document.querySelectorAll
在不支持后者的浏览器中获得支持。will
$('div')。not('#content')。remove()
不删除作为div的父节点?@jAndy缓存
所有div\u节点[len]
会执行得更快,为什么需要检查每个div是否存在parentNode?(仅当您的html文档格式不正确时才需要此选项)@Itay:
.not()
过滤当前集并删除所有匹配项。我不喜欢这样…看起来比需要的更详细、更复杂…并且与引导不特别兼容。
$("#content").siblings("div").remove();