From 05e03c51cdbddd25a039536edc3456763c798a2c Mon Sep 17 00:00:00 2001 From: Iliyan Peychev Date: Sun, 3 Aug 2014 10:18:41 +0200 Subject: [PATCH] [selector] Remove auto added ID on testing for selector Fixes #1925 --- src/dom/js/selector-native.js | 8 +++++++- src/dom/tests/unit/selector.html | 7 +++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/dom/js/selector-native.js b/src/dom/js/selector-native.js index 8da9870e43d..ae41a09b2d3 100644 --- a/src/dom/js/selector-native.js +++ b/src/dom/js/selector-native.js @@ -298,7 +298,8 @@ var Selector = { * @static */ test: function(node, selector, root) { - var ret = false, + var defaultId, + ret = false, useFrag = false, groups, parent, @@ -330,6 +331,7 @@ var Selector = { id = Y.Selector._escapeId(Y.DOM.getId(node)); if (!id) { + defaultId = true; id = Y.guid(); Y.DOM.setId(node, id); } @@ -352,6 +354,10 @@ var Selector = { if (useFrag) { // cleanup frag.removeChild(node); } + + if (defaultId) { // cleanup, remove auto generated ID + node.removeAttribute('id'); + } }; } diff --git a/src/dom/tests/unit/selector.html b/src/dom/tests/unit/selector.html index 45b9434facc..5c16ce86722 100644 --- a/src/dom/tests/unit/selector.html +++ b/src/dom/tests/unit/selector.html @@ -218,6 +218,11 @@ Assert.isTrue(Selector.test(Y.DOM.byId('foo-bar'), 'input#foo-bar', form)); Assert.isFalse(Selector.test(Y.DOM.byId('foo-bar'), '#test-inputs input#foo-bar', form)); Assert.isTrue(Selector.test(Y.DOM.byId('foo-bar'), '#test-inputs input#foo-bar', form.parentNode)); + + var strongEl = document.getElementsByTagName('strong')[0]; + Selector.test(strongEl, 'strong'); + Assert.isFalse(strongEl.hasAttribute('id'), 'The strong element shouldn\'t have an ID'); + }, testRootQuery: function() { @@ -816,5 +821,7 @@
+ + Foo