javascript - 如何定位单击的 div 元素内的特定跨度?
问题描述
我已经尝试了一些方法来隐藏 div ".text-body" 中的跨度,但似乎无法使其工作。以下是我尝试过的一种方法。如何仅在单击的元素内隐藏带有“badge badge-danger-lighten”类的跨度?
$('.text-body').click(function(e){
if($(this).children('div').hasClass('media bg-light p-2'))
{
// do something
}
else
{
$('div.media.bg-light.p-2').addClass('mt-1 p-2').removeClass('bg-light')
$(e).find("span.w-25.float-right.text-right").hide(); //trying to hide span here
$(this).children('div').addClass("media bg-light p-2");
<a href="javascript:void(0);" class="text-body"><div class="media mt-1 p-2">
<img src="/static/assets/images/users/avatar-2.jpg" class="mr-2 rounded-circle" height="48"alt="Brandon Smith" />
<div class="media-body">
<h5 class="mt-0 mb-0 font-14">
<span class="float-right text-muted font-12">4:30am</span>
Brandon Smith
</h5>
<p class="mt-1 mb-0 text-muted font-14">
<span class="w-25 float-right text-right">**<span class="badge badge-danger-lighten">3</span></span>**
<span class="w-75">How are you today?</span></p></div></div></a>
解决方案
只是一个简单的说明,find
如果目标元素不是直接子元素,您可以如何使用
$('.text-body').click(function(e){
//this will look for any element with a class badge and badge-danger-lighten
$(this).find('.badge.badge-danger-lighten').hide()
})
.text-body{
border:1px solid;
}
<div class="text-body">
<span class="badge badge-danger-lighten">Target Span</span>
<br>
<span>Another Span</span>
<div>
<span class="badge badge-danger-lighten">Another Target Span/ deeply situated</span>
</div>
</div>
<br>
<br>
Click the rectangle above
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
推荐阅读
- sql - 在创建分区时在框架子句窗口中添加分组
- discord - 服务器的所有角色
- c# - 试图获取 ac# form Application 的 exe,获取 .dll 文件
- java - 如何在 Spring Boot 中从 OpenApi 3 文档中排除资源/库
- typescript - 来自对象值的 Typescript 动态接口
- html - 使用 css-sprite 级联两个 CSS 代码
- pandas - 不要比较缺失/NaN 值
- json - 在python中的请求库的标头中传递一个整数字段
- sql - 如何使用多个范围内的行数创建选择查询
- asp.net-core - 在 Net Core 中使用 Forge lib 生成房间