当前位置:  开发笔记 > 前端 > 正文

检索文本节点需要三重否定

如何解决《检索文本节点需要三重否定》经验,为你挑选了0个好方法。

想要使用一些"可读"的方法从元素中获取文本节点,我发现了这种我无法解释的奇怪行为.

-jsFiddle-

使用以下HTML标记:

text node and b element

文本节点不是DOM元素,所以我想知道这是否有效:

var textnode = $('div').contents().filter(':not(*)'); //returns jq empty set

即使使用.filter('*')和不返回文本节点但其他元素(b)也会失败.

所以测试它,我使用not()方法,我不确定它是否适用于文本节点:

var textnode = $('div').contents().not('*'); //returns jq empty set

我们承认吧.但是这个返回文本节点:

var textnode = $('div').contents().not(':not(:not(*))'); //returns text node in set

那么为什么 .not('*')失败的时候.not(':not(:not(*))')有效呢? 我无法解释.

PS: .filter(':not(:not(:not(*)))')失败,而我期待它完全像.not(':not(:not(*))')

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有