diff --git a/src/lib/dom.js b/src/lib/dom.js index 897d8b036..bea692ac7 100644 --- a/src/lib/dom.js +++ b/src/lib/dom.js @@ -129,7 +129,9 @@ export function closest(node, selector) { * @param {!HTMLElement} node */ export function remove(node) { - node.parentNode.removeChild(node); + if (node.parentNode) { + node.parentNode.removeChild(node); + } } /** diff --git a/tests/unit/lib/dom.js b/tests/unit/lib/dom.js index 74a78d9dd..fa40efddd 100644 --- a/tests/unit/lib/dom.js +++ b/tests/unit/lib/dom.js @@ -256,6 +256,12 @@ QUnit.test('css()', function (assert) { 1, 'Get computed value' ); + + assert.equal( + dom.css(window, 'width'), + null, + 'Get computed value of window' + ); }); QUnit.test('data()', function (assert) { @@ -294,6 +300,19 @@ QUnit.test('is()', function (assert) { assert.notOk(dom.is(div, '.testing')); }); +QUnit.test('remove()', function (assert) { + var parent = document.createElement('div'); + var child = document.createElement('div'); + + parent.appendChild(child); + dom.remove(child); + + assert.ok(!child.parentNode); + + // Make sure doesn't throw if has no parent + dom.remove(child); +}); + QUnit.test('contains()', function (assert) { var parent = document.createElement('div'); var child = document.createElement('div');