diff --git a/lib/api/traversing.js b/lib/api/traversing.js index 089c6d53a2..0dd60854c6 100644 --- a/lib/api/traversing.js +++ b/lib/api/traversing.js @@ -52,7 +52,9 @@ exports.find = function (selectorOrHaystack) { var elems = reSiblingSelector.test(selectorOrHaystack) ? context : context.reduce(function (newElems, elem) { - return newElems.concat(elem.children.filter(isTag)); + return Array.isArray(elem.children) + ? newElems.concat(elem.children.filter(isTag)) + : newElems; }, []); var options = Object.assign({ context: context }, this.options); diff --git a/test/api/traversing.js b/test/api/traversing.js index 9bdb6fa48d..e10bbba26c 100644 --- a/test/api/traversing.js +++ b/test/api/traversing.js @@ -29,6 +29,12 @@ describe('$(...)', function () { expect($('#fruits').find('.apple')[0].attribs['class']).toBe('apple'); }); + // #1679 - text tags not filtered + it('(single) : should filter out text nodes', function () { + var $root = $('\n' + fruits.replace(/>\n<') + '\n'); + expect($root.find('.apple')[0].attribs['class']).toBe('apple'); + }); + it('(many) : should find all matching descendant', function () { expect($('#fruits').find('li')).toHaveLength(3); });