- From: Andrea Giammarchi <notifications@github.com>
- Date: Tue, 22 Jun 2021 08:38:09 -0700
- To: whatwg/dom <dom@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Tuesday, 22 June 2021 15:39:05 UTC
Again, the TreeWalker already offers this possibility and more, combining multiple types at once. The whole proposal could be basically just: ```js const getNodesByType = function* (typeValue) { const type = typeof typeValue === 'number' ? typeValue : NodeFilter[ ( /^SHOW_/i.test(typeValue) ? typeValue : ('show_' + typeValue) ).toUpperCase() ]; const tw = document.createTreeWalker( this === document ? this.documentElement : this, type ); let currentNode = tw.nextNode(); while (currentNode) { yield currentNode; currentNode = tw.nextNode(); } }; ``` ### Example ```js for (const node of getNodesByType.call(document, 'text')) console.log(node); ``` ### Differences * allow both numbers and strings as entry point * becaue it allow numbers, it's possible to specify both COMMENT and TEXT * explicit NodeFilter['SHOW_THING'] is preserved * shortcuts to SHOW are transformed * better ergonomics, features, less polyfill bloat, and so on Why is TreeWalker being ignored in this discussion? -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/whatwg/dom/issues/992#issuecomment-866094495
Received on Tuesday, 22 June 2021 15:39:05 UTC