javascript - 什么是最简单的访问方法
问题描述
我试图了解li
通过 jQuery 访问元素所在的最佳方式。
例如:
$(".delete-button").on('click', function() {
var listItemToRemove = $(this).parent().parent().parent().parent().parent().parent();
listItemToRemove.slideUp( function(){ listItemToRemove.remove(); });
});
$(".delete-button").on('click', function() {
var listItemToRemove = $(this).parent().parent().parent().parent().parent().parent();
listItemToRemove.slideUp(function() {
listItemToRemove.remove();
});
});
.delete-button {
border: 1px solid black;
padding: 10px;
cursor: pointer;
display: inline-block;
}
li {
list-style-type: none;
}
h1 {
text-align: center;
font-size: 1.5em;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
<h1>
Delete Some Stuff!
</h1>
<div>
<ul class="mylist">
<li class="whatever">
<table width=100%>
<tr>
<td>Some Text 1</td>
<td align="right">
<div class="delete-container">
<div class="delete-button">Delete</div>
</div>
</td>
</tr>
</table>
</li>
<li class="whatever">
<table width=100%>
<tr>
<td>Some Text 2</td>
<td align="right">
<div class="delete-container">
<div class="delete-button">Delete</div>
</div>
</td>
</tr>
</table>
</li>
<li class="whatever">
<table width=100%>
<tr>
<td>Some Text 3</td>
<td align="right">
<div class="delete-container">
<div class="delete-button">Delete</div>
</div>
</td>
</tr>
</table>
</li>
<li class="whatever">
<table width=100%>
<tr>
<td>Some Text 4</td>
<td align="right">
<div class="delete-container">
<div class="delete-button">Delete</div>
</div>
</td>
</tr>
</table>
</li>
<li class="whatever">
<table width=100%>
<tr>
<td>Some Text 5</td>
<td align="right">
<div class="delete-container">
<div class="delete-button">Delete</div>
</div>
</td>
</tr>
</table>
</li>
</ul>
</div>
</div>
https://jsfiddle.net/a1bd9o68/
这是一种删除按钮所在列表项的方法,但可能有更简单的方法。我将如何做到这一点?
解决方案
使用.closest
并将其传递给它的选择器listItemToRemove
:
$(".delete-button").on('click', function() {
$(this)
.closest('.whatever')
.slideUp(function() {
$(this).remove();
});
});
.delete-button {
border: 1px solid black;
padding: 10px;
cursor: pointer;
display: inline-block;
}
li {
list-style-type: none;
}
h1 {
text-align: center;
font-size: 1.5em;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
<h1>
Delete Some Stuff!
</h1>
<div>
<ul class="mylist">
<li class="whatever">
<table width=100%>
<tr>
<td>Some Text 1</td>
<td align="right">
<div class="delete-container">
<div class="delete-button">Delete</div>
</div>
</td>
</tr>
</table>
</li>
<li class="whatever">
<table width=100%>
<tr>
<td>Some Text 2</td>
<td align="right">
<div class="delete-container">
<div class="delete-button">Delete</div>
</div>
</td>
</tr>
</table>
</li>
<li class="whatever">
<table width=100%>
<tr>
<td>Some Text 3</td>
<td align="right">
<div class="delete-container">
<div class="delete-button">Delete</div>
</div>
</td>
</tr>
</table>
</li>
<li class="whatever">
<table width=100%>
<tr>
<td>Some Text 4</td>
<td align="right">
<div class="delete-container">
<div class="delete-button">Delete</div>
</div>
</td>
</tr>
</table>
</li>
<li class="whatever">
<table width=100%>
<tr>
<td>Some Text 5</td>
<td align="right">
<div class="delete-container">
<div class="delete-button">Delete</div>
</div>
</td>
</tr>
</table>
</li>
</ul>
</div>
</div>
推荐阅读
- typescript - Typescript:如何基于数据结构生成和打印 AST
- c# - 替换子类类型的 switch 语句
- python - 将索引从时间字符串转换为毫秒 - Pandas 时间序列
- function - Azure Function App Url 自行更改
- c# - 从visual studio中的图片中获取exif数据并将其存储在acces数据库中
- amazon-web-services - Springboot:Swagger UI 格式在 AWS 中显示不正确
- mysql - 从 Laravel 应用程序备份数据库
- eclipse - 如何告诉 Eclipse 使用哪个 Debug 配置作为默认配置?
- ibm-mq - 有谁知道我们如何使用存根以隔离的方式对 IBM MQ 消息流进行单元测试?
- alexa - 谷歌智能家居和 Alexa 智能家居