Javascript 选择具有相同URL id的类

Javascript 选择具有相同URL id的类,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我在一页上有一个过滤器。当用户进入此页面时,如果他们有ID,我希望此筛选器触发该ID 例如,如果id=event,我希望触发事件过滤器 是否有一种更流畅的方式来显示它,而不是显示每个单独的id 例如,这在以下方面起作用:- if ( document.location.href.indexOf('#events') > -1 ) { $(".btn.events").trigger('click'); } if ( document.locatio

我在一页上有一个过滤器。当用户进入此页面时,如果他们有ID,我希望此筛选器触发该ID

例如,如果id=event,我希望触发事件过滤器

是否有一种更流畅的方式来显示它,而不是显示每个单独的id

例如,这在以下方面起作用:-

    if ( document.location.href.indexOf('#events') > -1 ) {
        $(".btn.events").trigger('click'); 
    }
    if ( document.location.href.indexOf('#video') > -1 ) {
        $(".btn.video").trigger('click'); 
    }
但如果这是流动的,效果会更好。我真的需要说如果URL有一个ID,然后找到具有相同类的按钮并触发此事件


谢谢

设置可能/允许的哈希数组,然后动态组合选择器

var myhash =  ['#events', '#video', ... ];
var hash = location.hash;

if (myhash.includes(hash)) {
   var el = $(".btn." + hash.substring(1));
   if (el.length) {
       el.trigger('click'); 
   }
}

假设目标元素上的类始终与URL片段的内容匹配,那么您可以非常简单地对其进行泛化:

var fragment = window.location.hash;
if (fragment) {
  var target = fragment.substring(1);
  $(".btn." + target).trigger('click'); 
}

不知道确切的URL模式。假设您有查询参数,此代码段将正常工作

const currentUrl = new URL(location.href);
const queryParams = currentUrl.search;
const searchParams = new URLSearchParams(queryParams);
const searchId = (searchParams && searchParams.has("id") && searchParams.get("id")) || "";
if(searchId) {
  const ele = [".btn", searchId].join(".");
  $(ele).trigger('click'); 
}
我的建议是:

使用:window.location.search从Url获取ID,并将ID的值保存在新参数value\u ID中。 之后,如果值_id不为空,则可以创建常规函数:

$.btn+值_id.触发“单击”


显示您的URL格式?请使用纯JavaScript共享您的URL格式-我知道Rory已经知道-document.querySelector`.btn.${target}`。单击,但请记住,编程单击事件可能不会触发所需事件,这取决于该事件是什么,以及浏览器是否需要真正的用户交互。Hi Rory,太棒了,谢谢!有一个小问题,单击函数不会在以下生成时启动:-URL/events/但是,只需删除最后一个/works,那么:-“URL/events”也可以通过上面的命令进行编辑吗?当然,在这种情况下,您需要从片段中删除斜杠:fragment.substring1.replace/\//g;那太棒了,正是我需要的。谢谢Rory!