diff --git a/js/src/util.js b/js/src/util.js
index 515eba6d9b5bf5affde5e9d82a491882a368828d..3c0d022513f00bb25daa5760f9b4ced1fb9c7017 100644
--- a/js/src/util.js
+++ b/js/src/util.js
@@ -112,13 +112,16 @@ const Util = (($) => {
 
     getSelectorFromElement(element) {
       let selector = element.getAttribute('data-target')
-
-      if (!selector) {
+      if (!selector || selector === '#') {
         selector = element.getAttribute('href') || ''
-        selector = /^#[a-z]/i.test(selector) ? selector : null
       }
 
-      return selector
+      try {
+        const $selector = $(selector)
+        return $selector.length > 0 ? selector : null
+      } catch (error) {
+        return null
+      }
     },
 
     reflow(element) {