首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jquery查找具有匹配url和addclass的锚点

使用jquery查找具有匹配url和addclass的锚点
EN

Stack Overflow用户
提问于 2015-10-04 08:23:25
回答 2查看 862关注 0票数 1

我需要在nav中突出显示父项和子项,我将作为一个基于页面的数组返回url。

我的基本Nav结构是这样的

代码语言:javascript
复制
<div id="cssmenu">
   <div id="menu-button"></div>
   <ul>
      <li><a href="/en/about-us/">About Us</a></li>
      <li class="has-sub">
         <span class="submenu-button"></span><a href="/en/photo-gallery/">Gallery </a>
         <ul>
            <li><a href="/en/photo-gallery/" >Photo Gallery</a></li>
            <li><a href="/en/video-gallery/">Video Gallery</a></li>
            <li><a href="/en/instagram-gallery/">Instagram Gallery</a></li>
         </ul>
      </li>
      <li><a href="/en/news/">News</a></li>
      <li><a href="/en/contact/">Contact</a></li>
   </ul>
</div>

带有url的Javascript需要高级别。

var HighlightMenuItems = "['/en/islam/about-islam/','/en/islam/about-islam/',]";

如何在特定导航中找到与此锚元素匹配的url和和active-menu类。

代码示例http://codepen.io/anon/pen/XmMxbM?editors=101

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-04 08:34:24

您需要创建一个属性值选择器。

由于数组中有多个元素,所以可以使用join为所有链接创建一个选择器,而不是遍历数组并逐个选择元素。

代码语言:javascript
复制
'a[href="' + HighlightMenuItems.join('"], a[href="') + '"]';

通过使用上述语句,创建的选择器如下所示:

代码语言:javascript
复制
a[href="/en/about-us/"], a[href="/en/video-gallery/"]

然后可以将这些元素传递给jQuery,以选择DOM形式的元素。

以下是更新的钢笔:http://codepen.io/anon/pen/gamBPE

代码语言:javascript
复制
jQuery(document).ready(function() {
  var HighlightMenuItems = ['/en/about-us/', '/en/video-gallery/'];

  var menuSelector = 'a[href="' + HighlightMenuItems.join('"], a[href="') + '"]';

  $(menuSelector).addClass('active-menu');
});
代码语言:javascript
复制
.active-menu {
  color: green;
  font-weight: bold;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<div id="cssmenu">
  <div id="menu-button"></div>
  <ul>
    <li><a href="/en/about-us/">About Us</a>
    </li>
    <li class="has-sub">
      <span class="submenu-button"></span><a href="/en/photo-gallery/">Gallery </a>
      <ul>
        <li><a href="/en/photo-gallery/">Photo Gallery</a>
        </li>
        <li><a href="/en/video-gallery/">Video Gallery</a>
        </li>
        <li><a href="/en/instagram-gallery/">Instagram Gallery</a>
        </li>
      </ul>
    </li>
    <li><a href="/en/news/">News</a>
    </li>
    <li><a href="/en/contact/">Contact</a>
    </li>
  </ul>
</div>

更新:

对评论的答复

如何只针对页眉菜单,因为我也有类似的页脚菜单,而且它也改变了我不想要的

可以在标头元素中使用find

代码语言:javascript
复制
$('#cssmenu').find(menuSelector).addClass('active-menu');
// ^^^^^^^^ : Use parent selector here that will select only header
票数 3
EN

Stack Overflow用户

发布于 2015-10-04 08:34:13

你需要这样的东西:

代码语言:javascript
复制
$("a[href=" + HighlightMenuItems[0] + "]").addClass("active-menu");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32931481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档