所以我试图根据匹配li中标签的href的URL向li添加一个类。我目前的代码是为每个li添加一个类,但我需要尝试将其添加到仅包含匹配标记的li。这有任何意义吗?任何帮助将不胜感激。
我的代码:
<div id="admin-action-menu" class="links">
<div id="cat_settings" class="cat_menu row-fluid">
<ul role="menu" >
<? if (($user->type_id == 1) || ($user->type_id == 2)) { ?>
<li>
<div class="icon system-settings">
</div>
<div class="action-text">
<span>
System Settings
</span>
</div>
<a href="/admin/system_settings"></a>
</li>
<? } ?>
<? if (($user->type_id == 1) || ($user->type_id == 2)) { ?>
<li>
<div class="icon email-settings">
</div>
<div class="action-text">
<span>
Email Settings
</span>
</div>
<a href="/admin/email_settings"></a>
</li>
<? } ?>
</ul>
</div>
<div id="cat_people" class="cat_menu row-fluid">
<ul role="menu" >
<? if ($user->type_id == 1) { ?>
<li>
<div class="icon system-admins">
</div>
<div class="action-text">
<span>
System Admins
</span>
</div>
<a href="/admin/admin_list"></a>
</li>
<? } ?>
<? if ($user->type_id == 1 || $user->type_id == 2) { ?>
<li>
<div class="icon company-admins">
</div>
<div class="action-text">
<span>
Company Admins
</span>
</div>
<a href="/admin/company_admin_list"></a>
</li>
<? } ?>
</ul>
</div>
</div>
<script>
$('.cat_menu li').each(function(){
var link = $(this).data('href');
var url = window.location.href;
if ( link = url ) {
$(this).addClass('yuuuuup');
} else {
$(this).addClass('nooooope');
}
});
</script>
答案 0 :(得分:0)
我认为您打算使用== here
if ( link = url ) {
答案 1 :(得分:0)
这里至少有一些问题。首先,您使用$(this).data('href');
检索li中锚标记的href。除非您遗漏相关代码,否则根据您发布的内容不起作用。相反(再次基于你拥有的)获取URL,请执行以下操作:
var link = $('a', $(this)).attr('href'); //Assumes only one anchor is contained within the li
然后,按照您编写此代码的方式,您需要检查当前页面的URL中是否包含当前迭代的href。你可以这样做:
if (url.toLowerCase().indexOf(link.toLowerCase()) != -1){
$(this).addClass('yuuuuup'); // Match
} else {
$(this).addClass('nooooope'); //No match
}
您当然可以修改代码以查看URLS是否匹配,并且有多种方法可以完成您要执行的操作。但那些是错误的两件大事。