From bfcc86a200bef812af457de182472412f389ea5c Mon Sep 17 00:00:00 2001 From: David Buezas Date: Fri, 9 Oct 2015 10:47:37 +0200 Subject: [PATCH 1/2] Ensure uniqueness even when the page has duplicated Ids --- css-path.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/css-path.js b/css-path.js index 4b2b3c9..7bc5674 100644 --- a/css-path.js +++ b/css-path.js @@ -35,8 +35,14 @@ var trim = require('trim') , id = elm.getAttribute('id') if (id) { - list.unshift(tag + '#' + trim(id)) - return list + list.unshift( tag + '#' + trim(id) ); + var isUnique = rootNode.querySelectorAll(list.join('>')).length === 1; + if (isUnique){ + return list; + } else { + list.shift(); + selector.push('#' + trim(id)); + } } if (className) @@ -57,4 +63,4 @@ var trim = require('trim') module.exports = function (elm, rootNode) { return path(elm, rootNode, []).join(' > ') -} \ No newline at end of file +} From e49f1e0621a8d6fb61fb08f0fbdc172ff7095d14 Mon Sep 17 00:00:00 2001 From: David Buezas Date: Fri, 9 Oct 2015 10:49:36 +0200 Subject: [PATCH 2/2] removed semicolons to follow original code-style --- css-path.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/css-path.js b/css-path.js index 7bc5674..f2f339a 100644 --- a/css-path.js +++ b/css-path.js @@ -35,13 +35,13 @@ var trim = require('trim') , id = elm.getAttribute('id') if (id) { - list.unshift( tag + '#' + trim(id) ); - var isUnique = rootNode.querySelectorAll(list.join('>')).length === 1; + list.unshift( tag + '#' + trim(id) ) + var isUnique = rootNode.querySelectorAll(list.join('>')).length === 1 if (isUnique){ - return list; + return list } else { - list.shift(); - selector.push('#' + trim(id)); + list.shift() + selector.push('#' + trim(id)) } }