javascript - 无法定位具有 id 的特定元素的父级
问题描述
我正在处理这个演示代码。为什么我无法使用 id 定位特定元素的父级?我想将类添加到具有的元素active
的父级a
id
#map
$("#map .nav-tabs>li>a").parent().addClass('active');
$("#map .nav-tabs li>a").parent().addClass('active');
.active {
border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="nav-tabs">
<li><a id="map"> Map</a></li>
<li><a id="tap"> Tap</a></li>
<li><a id="app"> App</a></li>
</ul>
解决方案
您可以使用.closest()
而不是.parent()以获得更多面向未来的灵活性
$(".nav-tabs>li>a").closest("#map, #app").addClass('active');
.active {
border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="nav-tabs">
<li><a id="map"> Map</a></li>
<li><a id="tap"> Tap</a></li>
<li><a id="app"> App</a></li>
</ul>
但由于 ID 是唯一的,您可以直接定位您的 ID
$("#map, #app").addClass('active');
.active {
border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="nav-tabs">
<li><a id="map"> Map</a></li>
<li><a id="tap"> Tap</a></li>
<li><a id="app"> App</a></li>
</ul>
这让我觉得你实际上是在问一个 XY 问题——你的实际需要是在点击或类似的情况下定位父母:
$(".nav-tabs").on("click", ".nav-tabs-tab", function() {
$(this).addClass("active");
// or
// $(this).closest("li").addClass("active");
// or
// $(this).closest("desiredSelector").addClass("active");
// you got the point
});
.active {
border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="nav-tabs">
<li><a class="nav-tabs-tab">Map</a></li>
<li><a class="nav-tabs-tab">Tap</a></li>
<li><a class="nav-tabs-tab">App</a></li>
</ul>
推荐阅读
- opensearch - 如何使用 opensearch 获得建议?
- docker - coredns pod 未在 kubernetes 中运行
- javascript - 从 bearer_token O365 获取当前登录用户的用户信息
- swift - 如何将数据从委托方法传递到 RxSwift 中可观察的 onNext 方法?
- c++ - 如何在数组中存储多个队列?
- google-apps-script - 如何使用 Apps 脚本获取过滤范围的值
- azure - 有没有办法获得 Azure AD 用户的成对标识符
- javascript - Js 或 Jquery:获取 url 并替换 url 以更改语言
- php - 如何在字符串具有大写字符的地方添加新行?
- anaconda - 在 anaconda 中安装 dlib 时出现无法满足的错误