0

我有以下 XPath 表达式来获取textNodes元素中的所有内容。

var textnodes = document.evaluate('descendant::text()', element, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);

它可以在 Chrome 和 Firefox 上完美运行,但 IE。

由于 Sizzle 是浏览器证明的,我想知道,有没有办法只使用 Sizzle/jQuery 选择 textNodes?众所周知,IE是个大问题,IE9也没有XPath(10th呢?)。

或者,换句话说,我如何将我的 XPath 表达式转换为 Sizzle?

4

2 回答 2

0

在 jQuery 中,您可以使用filternodeType来获取元素中的文本节点:

var textnodes = $('*').contents().filter(function(){
    return this.nodeType === 3;
});
于 2012-05-05T23:25:54.743 回答
0

从这里尝试我的解决方案。它甚至允许您在没有额外功能的情况下过滤文本节点本身,以及使用.end().

于 2012-12-21T01:35:15.930 回答