funciton qichu(img_name)
{
  document.images(img_name).removeNode(true);
}

解决方案 »

  1.   

    我希望用正则表达式实现,因为我还想用于别的元素,或者XML格式的字符串。在有的时候,在一个HTML格式的字符串中,删除指定类型的标记,更加通用一些
      

  2.   

    funciton qichu(img_name)
    {
    var reg=new RegExp("<img[^\<]+name="+img_name+"[^\<]*>","ig");
    document.body.innerHTML=document.body.innerHTML.replace(reg,"");
    }
      

  3.   

    <BODY>
    <img name="yyy">
    <img name="yyy">
    <img name="yyyb">
    <img name="yyy">
    <img name="yyy">
    <img name="yyy">
    <img name="yyy">
    </BODY>
    <script>
    var count = document.all.tags("IMG").length;var tmparray = new Array();for (var i=0; i<count; i++)
    {
    if (document.all.tags("IMG")[i].name == "yyy")
    tmparray[tmparray.length] = document.all.tags("IMG")[i];
    }for (var i=0; i<tmparray.length; i++)
    {
    tmparray[i].outerHTML = "";
    }tmparray = null;
    </script>
      

  4.   

    老梅funciton 写错啦。偶怎么试好像去除多个也不太好用哦<BODY>
    <img id="yyy">
    <img id="yyy">
    <img id="yyyb">
    <img id="yyy">
    <img id="yyy">
    <img id="yyy">
    <img id="yyy">
    </BODY>
    <script>
    function qichu(img_name)
    {
      document.images(img_name).removeNode(true);
    }qichu("yyy");
    </script>
      

  5.   

    我知道,正则表达式的替换是非常方便的,但是对于HTML XML这类标记性文档,通过DOM的API来访问应该比直接的字符串操作要正统,安全(就是说可以保证ML的well formed)。var count = document.all.tags("IMG").length;并且,看这里,这里已经提供了替换其他标签的能力。
      

  6.   

    重构一下我的代码。<BODY>
    <img name="yyy">
    <img name="yyy">
    <img name="yyyb">
    <img name="yyy">
    <img name="yyy">
    <img name="yyy">
    <img name="yyy">
    </BODY><script>
    document.body.removeElementsWithName = function removeElementsWithName( elementTag, elementName )
    {
    var count = document.all.tags(elementTag).length; var tmparray = new Array(); for (var i=0; i<count; i++)
    {
    if (document.all.tags(elementTag)[i].name == elementName)
    tmparray[tmparray.length] = document.all.tags(elementTag)[i];
    } for (var i=0; i<tmparray.length; i++)
    {
    tmparray[i].outerHTML = "";
    } tmparray = null;
    }document.body.removeElementsWithName( "IMG", "yyy" );
    </script>
      

  7.   

    再改一下,呵呵。<BODY>
    <img name="yyy">
    <img name="yyy">
    <img name="yyyb">
    <img name="yyy">
    <img name="yyy">
    <img name="yyy">
    <img name="yyy">
    </BODY><script>
    document.removeElementsByName = function ( elementTag, elementName )
    {
    var count = this.all.tags(elementTag).length; var tmparray = new Array(); for (var i=0; i<count; i++)
    {
    if (this.all.tags(elementTag)[i].name == elementName)
    tmparray[tmparray.length] = this.all.tags(elementTag)[i];
    } for (var i=0; i<tmparray.length; i++)
    {
    tmparray[i].outerHTML = "";
    } tmparray = null;
    }document.removeElementsByName( "IMG", "yyy" );
    </script>
      

  8.   

    把你的函数再改进一下(all的支持没有getElementsByTagName()的多):
    <BODY>
    <img name="yyy">
    <img name="yyy">
    <img name="yyyb">
    <img name="yyy">
    <img name="yyy">
    <img name="yyy">
    <img name="yyy">
    <br><input type=button value=ok onclick='removeElementsByName( "IMG", "yyy" )'>
    </BODY><script>
    function removeElementsByName(elementTag, elementName)
    {
    var Es  = document.getElementsByTagName(elementTag);
      var len = Es.length;
      for(var i=len-1; i>-1; i--)
        if(Es[i].name==elementName)
          Es[i].removeNode(true);
    }
    </script>
      

  9.   

    http://blog.csdn.net/runmin/archive/2004/07/15/42395.aspx有兴趣的看看这里^^
      

  10.   


        我在MS的网站看到过一位 Mark Davis 写的文章, "加快 DHTML 的一组技巧", 他在这篇文章中提到, 对 document 重构赋加对象或者属性的做法, 文档必须执行额外的重算操作, 会影响DHTML的执行效率, 因此我没有采用 expando 属性的解决方法.    你在上文中说到:"所以不用document.all.yyy来取得collection了,因为如果这样的话需要判断name为yyy的数量如果只有一个", 而你的代码又用 this.all.tags(elementTag).length; 这样的写法, 这个 this 在这里当然就是指 document 那么这句代码就是 document.all.tags(elementTag).length; 你怎么还是用了 document.all 呢??    我觉得你把问题搞复杂化了.