aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/jqLite.js11
-rw-r--r--test/jqLiteSpec.js9
2 files changed, 18 insertions, 2 deletions
diff --git a/src/jqLite.js b/src/jqLite.js
index 8305f0c3..d156ae6d 100644
--- a/src/jqLite.js
+++ b/src/jqLite.js
@@ -718,7 +718,16 @@ forEach({
},
next: function(element) {
- return element.nextSibling;
+ if (element.nextElementSibling) {
+ return element.nextElementSibling;
+ }
+
+ // IE8 doesn't have nextElementSibling
+ var elm = element.nextSibling;
+ while (elm != null && elm.nodeType !== 1) {
+ elm = elm.nextSibling;
+ }
+ return elm;
},
find: function(element, selector) {
diff --git a/test/jqLiteSpec.js b/test/jqLiteSpec.js
index 01f9b9ae..b23e23eb 100644
--- a/test/jqLiteSpec.js
+++ b/test/jqLiteSpec.js
@@ -1,4 +1,3 @@
-
describe('jqLite', function() {
var scope, a, b, c;
@@ -1073,6 +1072,14 @@ describe('jqLite', function() {
var i = element.find('i');
expect(b.next()).toJqEqual([i]);
});
+
+
+ it('should ignore non-element siblings', function() {
+ var element = jqLite('<div><b>b</b>TextNode<!-- comment node --><i>i</i></div>');
+ var b = element.find('b');
+ var i = element.find('i');
+ expect(b.next()).toJqEqual([i]);
+ });
});