如何使用 querySelector 在锚标记的 href 属性末尾定位哈希?

Posted

技术标签:

【中文标题】如何使用 querySelector 在锚标记的 href 属性末尾定位哈希?【英文标题】:How do I use querySelector to target a hash at the end of an anchor tag's href attribute? 【发布时间】:2021-05-17 06:57:17 【问题描述】:

我需要使用querySelector 将我的锚标记中的散列定位并匹配到另一个函数,但散列出现在 URL 的末尾。我该怎么做?我正在尝试使用通配符进行匹配,但它不起作用(返回错误Uncaught TypeError: Cannot read property of null)......基本上只需要在哈希之后查询所有内容。感谢您提供任何见解。

<a href="example.abc.org/#xyz">

var newLink = document.querySelector(`[href*='#$id']`).classList.add('current');

编辑:用美元符号替换以捕捉字符串的结尾,但仍然没有运气......这是上下文的完整代码。我正在尝试创建一个 Intersection Observer。

<a href="example.abc.org/#xyz">

const nav = (entries, observer) => 
      entries.forEach((entry) => 
        if (entry.isIntersecting && entry.intersectionRatio >= 0.55) 
          document.querySelector('li.current').classList.remove('current');
          const id = entry.target.getAttribute('id');
          var newLink = document.querySelector(`[href$='#$id']`).classList.add('current');
        
      );
    
    const options = 
      root: null
    ;
const observer = new IntersectionObserver(nav,options);
    // target the elements to be observed
    const sections = document.querySelectorAll('section.op-section');
    sections.forEach((section) => observer.observe(section););

【问题讨论】:

***.com/questions/5376431/… 试试&lt;a href="example.abc.org/#xyz"&gt;href 周围缺少引号)。 谢谢,但这只是一个例子——实际的锚点是在后端生成的。为了清楚起见,我会修正。 【参考方案1】:

刚刚看到我的错误:current 类附加到列表项而不是锚点。谢谢。

【讨论】:

以上是关于如何使用 querySelector 在锚标记的 href 属性末尾定位哈希?的主要内容,如果未能解决你的问题,请参考以下文章

使用php在锚定标记之间提取url

如何在锚点标记中以编程方式调用onclick()事件,同时在onclick函数中保留“this”引用?

在使用 CSS 自定义属性设置的 Chrome 背景图像上,在锚标记内时会闪烁

Java List 元素在锚标记内未定义

css:在锚标记上添加背景图像 URL

跨度在锚标记内阻止 iPhone 上 Safari 的点击事件