function walkNodes ($nodes, currentItem) {
    $nodes.each(function (i, node) {
      var $node = $(node);
      var props = splitUnique($node.attr('itemprop'));

      if (props && currentItem) {
        var value = null;
        if ($node.is('[itemscope]')) {
          value = parseItem(node, currentItem);
        } else {
          value = parsePropertyValue(node);
          walkNodes($node.children(), currentItem);
        }
        currentItem.addProperties(props, value);
      } else if ($node.is('[itemscope]') && !$node.is('[itemprop]')) {
        var newItem = parseItem(node, currentItem);
        if (newItem !== Item.ERROR) {
          items.push(newItem);
        }
      } else {
        walkNodes($node.children(), currentItem);
      }
    });
  }
function walkNodes ($nodes, currentItem) {
    $nodes.each(function (i, node) {
      var $node = $(node);
      var props = splitUnique($node.attr('itemprop'));

      if (props && currentItem) {
        var value = null;
        if ($node.is('[itemscope]')) {
          value = parseItem(node, currentItem);
        } else {
          value = parsePropertyValue(node);
          walkNodes($node.children(), currentItem);
        }
        currentItem.addProperties(props, value);
      } else if ($node.is('[itemscope]') && !$node.is('[itemprop]')) {
        var newItem = parseItem(node, currentItem);
        if (newItem !== Item.ERROR) {
          items.push(newItem);
        }
      } else {
        walkNodes($node.children(), currentItem);
      }
    });
  }
function walkNodes ( $nodes , currentItem ) { $nodes . each ( function ( i , node ) { var $node = $ ( node ) ; var props = splitUnique ( $node . attr ( 'itemprop' ) ) ; if ( props && currentItem ) { var value = null ; if ( $node . is ( '[itemscope]' ) ) { value = parseItem ( node , currentItem ) ; } else { value = parsePropertyValue ( node ) ; walkNodes ( $node . children ( ) , currentItem ) ; } currentItem . addProperties ( props , value ) ; } else if ( $node . is ( '[itemscope]' ) && ! $node . is ( '[itemprop]' ) ) { var newItem = parseItem ( node , currentItem ) ; if ( newItem !== Item . ERROR ) { items . push ( newItem ) ; } } else { walkNodes ( $node . children ( ) , currentItem ) ; } } ) ; }
visits a set of nodes to be parsed and recursively visits its children currentItem, if provided, contains the current microdata context
visits a set of nodes to be parsed and recursively visits its children currentItem if provided contains the current microdata context