<html> 
<head> 
<title></title> 
</head> 
<body>
[任何可能出现的代码]
</body>
</html>
<div>someText</div>
如何用JS去掉(替换掉)</html>标签后面的内容"<div>someText</div>",
这<div>没有ID,没有name(别告诉我往里面添加ID用getElementByID等之类的方法,因为这个<div>是系统自己生成出来的),
该如何用JS找到这最后一段内容,并且去掉它。

解决方案 »

  1.   

    <html> 
    <head> 
    <title></title> 
    <script>
      window.onload=function(){
    var div = document.getElementsByTagName("div");
    div[div.length-1].parentNode.removeChild(div[div.length-1]);
    };
    </script>
    </head> 
    <body>
    [任何可能出现的代码]
    </body>
    </html>
    <div>someText</div>
      

  2.   

    html外的DIV,
    是否被解析到DOM里取决于HTML解析器的容错性能。理论上应该杜绝这样的DIV出现。实在不行,把整个文件当做文本文件,用正则表达式识别DIV 并去除!
      

  3.   


    这个方法很好,在IE里可以实现了,但在FF里实现不了,如何兼容一下呢?
    研究一下
      

  4.   


    为什么在FF下实现不了?parentNode和childNodes是符合W3C标准的,parentElement和children只是IE支持
      

  5.   

    因为这是一个PHP站系统,它在最下面捆了个版权信息,试过修改源文件都删除不了,所以要想用JS来把它替换或者去掉。
      

  6.   

    这样应该也可以吧:
    <script>
         window.onload=function(){
            var div = document.getElementsByTagName("div");
    document.body.removeChild(div[div.length-1]);
        };
    </script>
      

  7.   

    可以用jquery嘛
    $('[!id][!name]').remove();
      

  8.   

    在IE下可以,但在FF里还是不行呢;
      

  9.   

    大家的代码只是删除了最后一个div,并没有判断这个div是否包括在</html>里面;
    如果LZ确定</html>的后面肯定有一个div那就没问题,
    如果没有的话会把</html>里面的最后一个div删掉的
      

  10.   

    不过好像也没办法判断是不是在</html>里面,好像会自动给算进去……
    这个div的文字内容可以作为标识么?譬如:<html> 
    <head> 
    <title></title> 
    <script>
         window.onload=function(){
            var div = document.getElementsByTagName("div");
    for (var i=div.length-1; i>=0; i--) {
    if (div[i].innerHTML.indexOf("some")>=0) document.body.removeChild(div[i]);
    }
        };
    </script>
    </head> 
    <body>
    <div>Text</div>
    [任何可能出现的代码]
    <div>123someText</div>
    </body>
    </html>
    <div>someText</div>