为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

7 回答

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

0 回复 有任何疑惑可以回复我~

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

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

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

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

1 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

kevine099 提问者

文本节点是他的子节点,属性节点就不是?
2016-04-25 回复 有任何疑惑可以回复我~

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


0 回复 有任何疑惑可以回复我~

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

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

0 回复 有任何疑惑可以回复我~
#1

kevine099 提问者

dom节点分为元素、属性、文本。class怎么不是dom节点?
2016-04-24 回复 有任何疑惑可以回复我~
#2

akiaki 回复 kevine099 提问者

- -class并不是属性 好像 属性是nodeName、nodeValue, nodeType.好像并没有class
2016-04-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
jQuery基础课程
  • 参与学习       154768    人
  • 解答问题       7184    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信