它总会把这段代码放在一个div里吧
比如这div的id='guanggao'
$('guanggao').innerHTML = '';
这样里面就是一个空格了

解决方案 »

  1.   

    不不不, 没有 div 的.
    这是 Blogbus 会在文章末尾最后一个 </p> 后面自动添加的代码.
    没法替换么?
      

  2.   

    <div id='guanggao'><br /><br /><br /><table width="468" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td><script type="text/javascript" src="http://www.blogbus.com/ads/ads.js"></script></td></tr></table><br /></div>
    <script type="text/javascript"> 
    $('guanggao').innerHTML = '';
    </script>
      

  3.   

    那就用DOM做啊
    找到标签p选择最后一个,然后innerHTML也可以啊
      

  4.   

    <div id="postBody" class="logPage"><p>安装程序会自动注册软件为 Pro 版本, 但是并无法检测出已安装的英文版路径, 请大家注意.</p>
    <br />
    <br />
    <br />
    <table width="468" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td>
    <script type="text/javascript" src="http://www.blogbus.com/ads/ads.js"></script>
    </td>
    </tr>
    </table>
    <br /></div>直接就是类似于这样的 = =.
      

  5.   

    var p = new Array();
    p =document.getElementBytagName('p');
    p[p.length-1].innerHTML = '';
      

  6.   

    这不是有个div吗?
    就用
    document.getElementById(postBody).innerHTML='';
    如果你还还<p>.....</p>这句的话就用
    document.getElementById(postBody).innerHTML='<p>安装程序会自动注册软件为 Pro 版本, 但是并无法检测出已安装的英文版路径, 请大家注意.</p>';
      

  7.   

    不是......那个 div 是文章部分的意思.
    上面那个 p 代表的是文章内容, 有很多个 p 的.
    然后在最后一个 p 后面, 从那个 br 开始, 是被自动添加的广告代码, 直到 /div 前最后一个 br.
      

  8.   

    要是这样的话就没有办法去掉br和table了
    但是可以去掉广告
    var table= new Array();
    table=document.getElementBytagName('table');
    table[table.length-1].innerHTML = '';
      

  9.   

    这样就能把table里面的东西置空了
      

  10.   

    我那里有一个 js 实现 BB 代码的东西.
    replace(/\[b\](.[^\[]*)\[\/b\]/gi, "<strong>$1</strong>");
    我想类似这样没有办法替换么?
      

  11.   

    如果是固定的那好办
    就怕不是固定的首先使用document.getElementById("postBody").innerHTML里面的值,再使用正则匹配replace掉
      

  12.   

    如果div里面你只要<p>的话,那你可以先取出来过滤之后再放进去也可以啊
    比如:
    var str = document.getElementById(postBody).innerHTML;
    str.replace(/\[b\](.[^\[]*)\[\/b\]/gi, " <strong>$1 </strong>");
    document.getElementById(postBody).innerHTML = str;
    正则不太会写
      

  13.   

    恩, 重新说一遍.<div id="postBody"> <!-- 这是我 Blog 日志页的文章部分 --><p>123</p>
    <p>456</p>
    <p>789</p> <!-- 这是文章内容 --><br /> <!-- 从这开始是被自动填进去的广告代码 -->
    <br />
    <br />
    <table width="468" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td>
    <script type="text/javascript" src="http://www.blogbus.com/ads/ads.js"></script>
    </td>
    </tr>
    </table>
    <br /> <!-- 到这里广告结束 --></div> <!-- 文章部分结束 -->我就是想把所有与广告有关的, 包括那些 br 都让他们消失...
    我知道这个其实应该有好多种方法的, 但是要考虑到浏览器的兼容性.
    所以刚才突然想到可不可以通过替换的方法...
      

  14.   

    我大概写一个正则给你一点提示:
    /([\<br\>\s*]{3})?(\<table[^>]\>.*\<\/table[^>]\>)([\<br\>\s*])*/gi
      

  15.   

    在你的页面加入这段代码:
    <script type="text/javascript">
    window.onload = function(){
    var scripts = document.getElementsByTagName("script");
    for(var i=0;i<scripts.length;i++) 
    if(scripts[i].src=="http://www.blogbus.com/ads/ads.js"){
    scripts[i].parentNode.innerHTML="";
    }
    }
    </script>
      

  16.   

    楼上的代码貌似无效果...
    这段是什么意思?
    那个 js 倒不是什么问题, 主要是 br 很讨厌.
      

  17.   

    正则看不太懂...
    替换的语句这样写有问题么?var aaa = getElementsByClass("logPage");
    for (i = 0; i < aaa.length; i ++) {
    aaa[i].innerHTML = aaa[i].innerHTML.replace(/([\ <br\>\s*]{3})?(\ <table[^>]\>.*\ <\/table[^>]\>)([\ <br\>\s*])*/gi, "123");
    }
      

  18.   

    var aaa = getElementsByClass("logPage");
    for (i = 0; i < aaa.length; i ++) {
    aaa[i].innerHTML = aaa[i].innerHTML.replace("<br /><br /><br />", "123");
    }为什么连 br 都替换不掉... 这样不行么?
      

  19.   

    不会吧,我这有反映啊,呵呵下面这个可以把广告和BR都去了,Good Luck ...
    <div id="postBody"> <p>123 </p> 
    <p>456 </p> 
    <p>789 </p><br />
    <br /> 
    <br />
    <table width="468" border="0" align="center" cellpadding="0" cellspacing="0"> 
    <tr> 
    <td> 
    <script type="text/javascript" src="http://www.blogbus.com/ads/ads.js"> </script> 
    </td> 
    </tr> 
    </table> 
    <br /></div><script type="text/javascript">
    window.onload = function(){
    var scripts = document.getElementsByTagName("script");
    for(var i=0;i<scripts.length;i++) 
    if(scripts[i].src=="http://www.blogbus.com/ads/ads.js"){
    //Remove ADs
    var t = scripts[i].parentNode;
    while(t.tagName.toUpperCase()!="TABLE") t = t.parentNode;
    t.style.display = "none";

    //Remove Upper BRs
    var upbr = t.previousSibling;
    while(upbr.tagName.toUpperCase()=="BR"){
    var t = upbr.previousSibling;
    upbr.parentNode.removeChild(upbr);
    upbr = t;
    }

    //Remove Lower BRs
    var lowbr = t.nextSibling;
    while(lowbr.tagName.toUpperCase()=="BR"){
    var t = lowbr.previousSibling;
    lowbr.parentNode.removeChild(lowbr);
    lowbr = t;
    }
    }
    }
    </script>
      

  20.   

    呵呵,确实还有个br,//Remove Lower BRs代码是复制前面的代码,有个地方忘改了修正后的代码:
    <div id="postBody"> <p>123 </p> 
    <p>456 </p> 
    <p>789 </p><br />
    <br /> 
    <br />
    <table width="468" border="0" align="center" cellpadding="0" cellspacing="0"> 
    <tr> 
    <td> 
    <script type="text/javascript" src="http://www.blogbus.com/ads/ads.js"> </script> 
    </td> 
    </tr> 
    </table> 
    <br /></div><script type="text/javascript">
    window.onload = function(){
        var scripts = document.getElementsByTagName("script");
        for(var i=0;i<scripts.length;i++) 
            if(scripts[i].src=="http://www.blogbus.com/ads/ads.js"){
                //Remove ADs
                var t = scripts[i].parentNode;
                while(t.tagName.toUpperCase()!="TABLE") t = t.parentNode;
                t.style.display = "none";
                
                //Remove Upper BRs
                var upbr = t.previousSibling;
                while(upbr.tagName.toUpperCase()=="BR"){
                    var t = upbr.previousSibling;
                    upbr.parentNode.removeChild(upbr);
                    upbr = t;
                }
                
                //Remove Lower BRs
                var lowbr = t.nextSibling;
                while(lowbr.tagName.toUpperCase()=="BR"){
                    var t = lowbr.nextSibling;
                    lowbr.parentNode.removeChild(lowbr);
                    lowbr = t;
                }
            }
    }
    </script>
      

  21.   

    呵呵,你可以把function里的代码放在你的广告之后,这样就不用等页面完全加载了才起作用...like this
    <div id="postBody"> <p>123 </p> 
    <p>456 </p> 
    <p>789 </p><br />
    <br /> 
    <br />
    <table width="468" border="0" align="center" cellpadding="0" cellspacing="0"> 
    <tr> 
    <td> 
    <script type="text/javascript" src="http://www.blogbus.com/ads/ads.js"> </script> 
    </td> 
    </tr> 
    </table> 
    <br /></div><script type="text/javascript">
    var scripts = document.getElementsByTagName("script");
    for(var i=0;i<scripts.length;i++) 
    if(scripts[i].src=="http://www.blogbus.com/ads/ads.js"){
    //Remove ADs
    var t = scripts[i].parentNode;
    while(t.tagName.toUpperCase()!="TABLE") t = t.parentNode;
    t.style.display = "none";

    //Remove Upper BRs
    var upbr = t.previousSibling;
    while(upbr.tagName.toUpperCase()=="BR"){
    var t = upbr.previousSibling;
    upbr.parentNode.removeChild(upbr);
    upbr = t;
    }

    //Remove Lower BRs
    var lowbr = t.nextSibling;
    while(lowbr.tagName.toUpperCase()=="BR"){
    var t = lowbr.nextSibling;
    lowbr.parentNode.removeChild(lowbr);
    lowbr = t;
    }
    }
    </script>
      

  22.   

    而且在 Opera 中, 有点问题...
    其它浏览器没试.
      

  23.   

    呵呵, 搞好了.东拼西凑出来这么一段:<script type="text/javascript">
    var br = document.getElementsByTagName('br');
    var table = document.getElementsByTagName('table');
    table[table.length-1].style.display = 'none';
    for (var i=br.length-1;i>=br.length-4;i--) {
    br[i].style.display = 'none';
    }
    </script>感谢 yonghengdexingxing 告诉我 fuction 与页面加载间的关系这个问题.
      

  24.   

    呵呵,很高兴看到你自己搞定了
    如果你自己的代码也有table和br的话,36的代码可能会有些问题PS:32楼的代码确实还有问题,呵呵,修改后应该ok了,Sorry for that
    <div id="postBody"> <p>123 </p> 
    <p>456 </p> 
    <p>789 </p><br />
    <br /> 
    <br />
    <table width="468" border="0" align="center" cellpadding="0" cellspacing="0"> 
    <tr> 
    <td> 
    <script type="text/javascript" src="http://www.blogbus.com/ads/ads.js"> </script> 
    </td> 
    </tr> 
    </table> 
    <br /></div><script type="text/javascript">
    var scripts = document.getElementsByTagName("script");
    for(var i=0;i<scripts.length;i++) 
        if(scripts[i].src=="http://www.blogbus.com/ads/ads.js"){
            //Remove ADs
            var tb = scripts[i].parentNode;
            while(tb.tagName.toUpperCase()!="TABLE") tb = tb.parentNode;
            tb.style.display = "none";
            
            //Remove Upper BRs
            var upbr = tb.previousSibling;
            while(upbr!=null&&upbr.tagName.toUpperCase()=="BR"){
                var t = upbr.previousSibling;
                upbr.parentNode.removeChild(upbr);
                upbr = t;
            }
            
            //Remove Lower BRs
            var lowbr = tb.nextSibling;
            while(lowbr!=null&&lowbr.tagName.toUpperCase()=="BR"){
                var t = lowbr.nextSibling;
                lowbr.parentNode.removeChild(lowbr);
                lowbr = t;
            }
        }
    </script>
      

  25.   

    恩, 的确可以了, 谢谢哈.
    刚才找了一篇带有 br 的文章, 看了看 36 的代码好像没问题.
    恩, table 没试.