javascript - 如何使用“包含”中的变量使用 jQuery 选择元素并使用类 Foo 删除最近的 el
问题描述
我正在尝试使用选择器中的变量来选择一个元素,以使用 class 删除最近的元素flag-container
。但是,当我触发该功能时,该元素不会被删除。
function remove_div() {
let comment_pk = 1
$("div:contains('" + comment_pk + "')").closest('.flag-container').remove()
}
$('#trigger').click(function() {
remove_div()
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div hidden class="comment-pk">1</div>
<div class="drilled-hierarchy">
<div class="flag-container">
To be removed
</div>
</div>
<button id="trigger"> Remove </button>
解决方案
您的逻辑中的问题是沿着祖先元素向上closest()
传播DOM 。您要定位的 是原始 的兄弟姐妹的孩子。.flag-container
div
因此,您可以使用next()
*find()
代替:
function remove_div() {
let comment_pk = 1
$("div:contains('" + comment_pk + "')").next('.drilled-hierarchy').find('.flag-container').remove()
}
$('#trigger').click(function() {
remove_div()
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div hidden class="comment-pk">1</div>
<div class="drilled-hierarchy">
<div class="flag-container">
To be removed
</div>
</div>
<button id="trigger">Remove</button>
*在这种情况下,在调用中使用选择器字符串参数next()
是可选的,但以后会保存意外的错误。siblings()
根据您的确切用例,也可能是合适的。
推荐阅读
- angularjs - AngularJS无法显示上传文件日志
- javascript - Babel-Standalone 错误:内联 Babel 脚本:当前未启用对实验性语法“decorators-legacy”的支持 (14:1):
- elasticsearch - 弹性搜索,对象数组的布尔查询
- flask - 无法在 gunicorn wsgi 服务器上运行烧瓶应用程序
- flutter - 应用程序在真机和模拟器上正常运行,但在生成 apk 时不工作
- android - dagger模块类的provider函数注解
- javascript - 有没有办法找到 html 元素的样式相关属性值?我想在我的下拉列表中加载这些值
- java - 无法在我的 jhipster 应用程序上加载其他配置文件
- python - 在 jupyter notebook 中使用 xlrd 在 python3 中读取 excel 时出错
- java - 我需要在 java 中使用 hashmap 制作图表,但我的代码在 addEdge 函数中显示空指针异常