soncy的笔记,不专注于任何领域
  • javascript删除元素节点

    发表于 2009年05月30日 soncy 4,376次阅读

    在javascript操作dom树的时候可能会经常遇到增加,删除节点的事情,比如一个输入框后一个增加按钮,一个删除按钮,点击增加就增加个输入框,点击删除就删除对应的输入框。在一些js框架,如Prototype中,可以用element.remove()来删除一个节点,核心JS中并没有这样的方法,IE中有这样一个方法:removeNode(),尝试运行下面的代码

    提示:你可以先修改部分代码再运行。

    可以发现,这个方法在IE下是好使的,但是在Firefox等标准浏览器中就会报错了 removeNode is not defined,但是在核心JS中有一个操作DOM节点的方法叫:removeChild(),看名字应该就知道是移除子节点的,那么我们就可以变通一下来实现移除指定的节点了,我们可以先去找到要删除节点的父节点,然后在父节点中运用removeChild来移除我们想移除的节点。我们可以定义一个方法,就叫removeElement吧。

    1
    2
    3
    4
    5
    6
    
    function removeElement(_element){
             var _parentElement = _element.parentNode;
             if(_parentElement){
                    _parentElement.removeChild(_element);  
             }
    }

    尝试运行下面的代码,可以在各种浏览器中正确执行了。

    提示:你可以先修改部分代码再运行。

    感谢您的浏览,如果您喜欢本站,可以通过Rss订阅本站,如需转载,请注明出处,谢谢!

    相关文章

     

    4 responses to “javascript删除元素节点” RSS 图标

    • LV

      不错的东东。先收藏起来

      [回复]

    • :shock: 突然想起另外一只猫咪也爱玩js…你们是一个人?

      [回复]


      soncy

      呃,我没有猫咪的雅号咯~ :!:

      [回复]

    • 不錯! 學習了! :lol:

      [回复]

    • 其实用display:none也挺好啊^!^

      [回复]


      soncy

      虽然表现一样,但是本质不一样哈~呵呵 :roll:

      [回复]


      苏洋

      .Visible = False 和 Unload 的区别…
      或者说一个是移动元素到不可见区域,另外一个是重写数据页面?猫咪兄解释一下…

      [回复]


      soncy

      恩恩,display:none只是隐藏掉该元素,实际上他还是在DOM中的,还可以对该元素进行操作,而remove掉就是从DOM中移除掉了,无法再找到这个元素了。 :grin:


      keelii

      none相当于一个障眼法了吧.哈哈!


      苏洋

      :o 高级Javascript程序员?…特别跑到去那儿看了一下..话说那个flash看起来真想GG股票的那个..
      前端不是传说中近似tester的累人职业么…再次瞻仰

      [回复]


      soncy

      呃,我可不是高级javascript程序员咯,初学者…
      还是接着说说刚才那个区别吧,比如看我现在博客的评论回复的那个表情按钮,点击一下,然后关闭,然后再换条评论点图标,这个时候会发现表情图标出现的位置不对了,这就是用display:none的原因,因为他并没有实际移除,造成了多个ID为“emoticons”的DIV,导致JS操作错误。


    发表评论

    emoticons点击图标添加表情