index.js 483 B

123456789101112131415161718192021222324
  1. var slice = Array.prototype.slice
  2. module.exports = iterativelyWalk
  3. function iterativelyWalk(nodes, cb) {
  4. if (!('length' in nodes)) {
  5. nodes = [nodes]
  6. }
  7. nodes = slice.call(nodes)
  8. while(nodes.length) {
  9. var node = nodes.shift(),
  10. ret = cb(node)
  11. if (ret) {
  12. return ret
  13. }
  14. if (node.childNodes && node.childNodes.length) {
  15. nodes = slice.call(node.childNodes).concat(nodes)
  16. }
  17. }
  18. }