NodeFilter.acceptNode() - Web API 接口参考 编辑
NodeFilter.acceptNode()
方法会返回一个无符号短整型,用于表明给出的 Node
是否要被 NodeIterator
或 TreeWalker
的迭代算法所接受。该方法应由 NodeFilter 的使用者重写。可返回的值有
:
Constant | Description |
NodeFilter.FILTER_ACCEPT | 当一个节点应被接受时由 NodeFilter.acceptNode() 返回。 |
NodeFilter.FILTER_REJECT | 当一个节点应被拒绝时由 NodeFilter.acceptNode() 返回 。被拒绝访问节点的子节点无法通过NodeIterator 或 TreeWalker 对象访问。该值可认为是“越过该节点及其子节点” 。 |
NodeFilter.FILTER_SKIP | 当一个节点应被 NodeIterator 或 TreeWalker 对象越过时由 NodeFilter.acceptNode() 返回 。其子节点依然可被访问到。该值可认为是“越过该节点但不包括其子节点”。 |
该函数如需要TreeWalker访问节点则需返回 NodeFilter.FILTER_ACCEPT,如果需要忽略节点及其子节点则需返回
NodeFilter.FILTER_REJECT,除此之外还可以返回
NodeFilter.FILTER_SKIP。
浏览器没有提供该方法的对象实现。如果用户需要,应实现一个包含acceptNode()方法的对象,用于
TreeWalker
或 NodeIterator
对象使用。
Syntax
result=
nodeFilter.acceptNode(
node)
Parameters
- node
- 一个将被过滤器检查的
Node
对象。
Example
var nodeIterator = document.createNodeIterator(
// 作为搜索起点的根节点
document.getElementById('someId'),
// 只需要文本节点
NodeFilter.SHOW_TEXT,
// 一个包含用于NodeFilter的accpetNode方法的对象
{ acceptNode: function(node) {
// 一段用于判明是否需要解释、拒绝或越过节点的逻辑
// 在本例中,仅需要接受不包含空白内容的节点
if ( ! /^\s*$/.test(node.data) ) {
return NodeFilter.FILTER_ACCEPT;
}
}
},
false
);
// Show the content of every non-empty text node that is a child of root
var node;
while ((node = iterator.nextNode())) {
alert(node.data);
}
Specifications
Specification | Status | Comment |
---|---|---|
DOM NodeFilter.acceptNode() | Living Standard | No change from Document Object Model (DOM) Level 2 Traversal and Range Specification |
Document Object Model (DOM) Level 2 Traversal and Range Specification NodeFilter.acceptNode() | Obsolete | Initial definition. |
Browser compatibility
We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | 1.0 | (Yes) | 2.0 (1.8.1) | 9.0 | 9.0 | 3.0 |
Feature | Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | 1.0 (1.8.1) | (Yes) | 9.0 | 3.0 |
See also
- The interface it belongs to:
NodeFilter
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论