empty()为什么不删除class属性?

来源:5-12 使用remove()和empty()方法删除元素

kevine099

2016-04-23 21:46

为什么不会删除class属性?为什么只有文本算是span的子节点,属性就不算它的子节点??

写回答 关注

7回答

  • 我想做前端大牛
    2016-05-14 13:40:33

    补充:remove之后元素节点不存在dom树里了,empty的元素还在dom中只是没有了文本节点

  • 我想做前端大牛
    2016-05-14 13:38:01

    remove()方法是删除同种类型元素节点以及同名所有子节点和子节点,如div ,remove只会删除当前同名的div及其以下同名的子节点和文本节点,如果div下有个p,p是不会被删除的。

    empty()方法就是删除元素的内容,也即是他的文本节点。这是我试验过的。大家可以尝试。

    我觉得这里删除的并不是元素,而是节点类型,比如文本就不是元素,而是dom节点,老师说的笼统。

    支持的点赞吧!!希望大家学习开心。

  • 乱飞的虫子
    2016-04-26 21:47:08

    因为empty,从字面理解就是清空内容的意思哈哈哈。或者你不要太纠结节点,可能他想表达的是清空文本节点吧

  • CoolHuan
    2016-04-25 23:18:07

    我觉得class里面设置的是CSS的样式 不属于DOM节点本身的属性吧。不必纠结这些东西,开发中以实际实现为准。

  • 慕娘9282524
    2016-04-25 12:03:16

    属性节点 不是他的子节点 !!

    kevine...

    文本节点是他的子节点,属性节点就不是?

    2016-04-25 13:11:48

    共 2 条回复 >

  • web龙
    2016-04-24 13:27:19

    因为empty()方法里 他只是删除了文本内容 而标签保存了


  • akiaki
    2016-04-24 00:25:54

    <span class="green">荔枝</span>

    在这个例子中 调用empty()后,为<span class="green"></span> 所删除的是其子节点 而class是属于span的属性 并不是dom中的结点 所以不会删除 如果要完全删除span 应该调用remove函数

    akiaki 回复kevine...

    - -class并不是属性 好像 属性是nodeName、nodeValue, nodeType.好像并没有class

    2016-04-24 19:41:54

    共 2 条回复 >

jQuery基础课程

加入课程学习,有效提高前端开发速度

154700 学习 · 7289 问题

查看课程