使用 jquery 选择特定的锚链接

Flo*_*bin 2 javascript anchor jquery

我有这样的菜单结构:

\n\n
<ul class="menu">\n    <li class="parent">\n        <a class="menu-link" href="http://url.com/#Id">Id</a>\n    </li>\n    <li class="parent">\n        <a class="menu-link" href="http://url.com/#Id">Id</a>\n    </li>\n</ul>\n
Run Code Online (Sandbox Code Playgroud)\n\n

还有英文版本,菜单如下:

\n\n
<ul class="menu">\n    <li class="parent">\n        <a class="menu-link" href="http://url.com/en/#Id">Id</a>\n    </li>\n    <li class="parent">\n        <a class="menu-link" href="http://url.com/en/#Id">Id</a>\n    </li>\n</ul>\n
Run Code Online (Sandbox Code Playgroud)\n\n

使用scrollspy,I\xe2\x80\x99m 检测页面的哪个部分当前可见。这样我就可以获得锚链接的Id部分。现在我如何选择特定的锚链接?

\n\n

我试过这个:

\n\n
$(\'.menu\').find(":contains(\'#" + this.id"\')" ).addClass(\'active\');\n
Run Code Online (Sandbox Code Playgroud)\n\n

但这不起作用(否则我不会在这里!)。

\n

Bhu*_*kar 5

:contains会检查html()/text()部分锚标记,需要使用href锚标记的属性选择器,如下所示

$('.menu').find("a[href*='#" + this.id + "']" ).addClass('active');
Run Code Online (Sandbox Code Playgroud)

JSFiddle 演示

有关属性包含选择器的更多信息