javascript - 检查锚点是否具有特定的 url 与 jQuery 没有重复
问题描述
嘿嘿,
我目前正在尝试创建一个脚本来检查if
其中一个anchor-elements
具有特定的url
. 我已经尝试过了,但它根本不适合我。我错过了什么?
var url = '/right_url';
if ($('a').attr('href') == url ) {
$(this).addClass('active');
}
.active {
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav>
<ul>
<li><a href="#">Test 1</a></li>
<li><a class="test" href="/right_url">Test 2</a></li>
<li><a href="#">Test 3</a></li>
<li><a href="#">Test 4</a></li>
</ul>
</nav>
解决方案
要引用特定元素,this
您必须遍历所有元素,以便检查属性:
var url = '/right_url';
$('a').each(function(){
if ($(this).attr('href') == url ) {
$(this).addClass('active');
}
});
.active {
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav>
<ul>
<li><a href="#">Test 1</a></li>
<li><a class="test" href="/right_url">Test 2</a></li>
<li><a href="#">Test 3</a></li>
<li><a href="#">Test 4</a></li>
</ul>
</nav>
虽然我认为你不需要使用循环和使用this
来实现你想要的。您可以简单地在选择器中使用href属性来添加类:
var url = '/right_url';
$(`a[href='${url}'`).addClass('active');
.active {
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav>
<ul>
<li><a href="#">Test 1</a></li>
<li><a class="test" href="/right_url">Test 2</a></li>
<li><a href="#">Test 3</a></li>
<li><a href="#">Test 4</a></li>
</ul>
</nav>
推荐阅读
- python - 如何在 Pandas 中按顺序标记分类变量?
- c++ - 如何使 for_each 采用带有 2 个参数的 lambda 函数?
- python - 如何拒绝python中的随机数?
- java - 如何将 arg 或字符串转换为用户?
- c# - 在报告中查找“列 ID”的问题
- google-people-api - Google 的 People API——更新联系人的问题 (Python)
- xcode - 如何检查是否在 mobileVLCkit 中发送数据
- ios - Swift“无法将“AppName.ToDoViewViewCtonroller”类型的值转换为 AppName.CalendarView”SIGBART
- python - 如何将文本文件的内容更改为元组字典?
- ruby - 在 Ruby 中捕获“无法统计:没有这样的文件或目录”错误