Advertisement
Guest User

Untitled

a guest
Feb 5th, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. qsa2 = function(node, selector) {
  2. var selectors = selector.split(" ");
  3. var matches;
  4. var children;
  5. var child;
  6. var parents = node.getElementsByTagName(selectors[0]);
  7. if (parents.length > 0) {
  8. for (var i = 0; i < parents.length; i++) {
  9. children = parents[i].getElementsByTagName(selectors[1]);
  10. if (children.length > 0) {
  11. for (var i = 0; i < parents.length; i++) {
  12. child = children[i];
  13. matches.push(child); // somehow store our result here
  14. }
  15. }
  16. }
  17. }
  18. return matches;
  19. }
  20.  
  21. function qsa2(selector) {
  22. var next = document;
  23. selector.split(/s+/g).forEach(function(sel) {
  24. var arr = [];
  25. (Array.isArray(next) ? next : [next]).forEach(function(el) {
  26. arr = arr.concat( [].slice.call(el.getElementsByTagName(sel) ));
  27. });
  28. next = arr;
  29. });
  30. return next;
  31. }
  32.  
  33. if (parents.length > 0) {
  34. for (var i = 0; i < parents.length; i++) {
  35. children = parents[i].getElementsByTagName(selectors[1]);
  36. if (children.length > 0) {
  37. for (var i = 0; i < parents.length; i++) { // <-----------------------
  38.  
  39. for (var i = 0; i < parents.length; i++) {
  40. children = parents[i].getElementsByTagName(selectors[1]);
  41. for (var k = 0; k < children.length; i++) {
  42.  
  43. var matches = [];
  44. function recursivelySelectChildren(selectors, nodes){
  45. if (selectors.length != 0){
  46. for (var i = 0; i < nodes.length; i++){
  47. recursivelySelectChildren(nodes[i].getElementsByTagName(selectors[0]), selectors.slice(1))
  48. }
  49. } else {
  50. matches.push(nodes);
  51. }
  52. }
  53. function qsa(selector, node){
  54. node = node || document;
  55. recursivelySelectChildren(selector.split(" "), [node]);
  56. return matches;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement