- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在寻找为什么 closest()
在遍历树之前首先找到它自己的元素。
例如:当我点击子元素时,我想要 fadeOut
父 div
元素,但是子元素太 div
和 fadeOut
$(document).on("click", ".close", function() {
$(this).closest("div").fadeOut();
});
.feed {
width: 200px;
height: 200px;
background: red;
position: relative;
}
.close {
position: absolute;
top: 0;
right: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="feed">
<div class="close">
X
</div>
</div>
为什么fadeOut
本身是元素而没有父div元素?
我知道 parent()
获取父元素,但是 closest()
应该遍历元素树。
您是否有具体的案例,其中 get 本身很有用?
最佳答案
这是因为.closest()
method从当前元素开始遍历 DOM。您可能需要 .parents()
method相反,因为它将从父元素开始。
$(this).parents("div").fadeOut();
值得注意的是,.parents()
方法返回零个或多个元素,而 .closest()
将返回零个或一个元素。因此,您可能希望在 .parents()
方法之后链接 .first()
以获得第一个匹配项:
$(this).parents("div").first().fadeOut();
$(document).on("click", ".close", function() {
$(this).parents("div").first().fadeOut();
});
.feed {
width: 200px;
height: 200px;
background: red;
position: relative;
}
.close {
position: absolute;
top: 0;
right: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="feed">
<div class="close">
X
</div>
</div>
或者,您也可以通过选择父元素来排除父元素,然后然后使用.closest()
,例如:
$(this).parent().closest("div").fadeOut();
但是,最好只选择最接近的 .feed
元素而不是 any div
:
$(this).closest(".feed").fadeOut();
$(document).on("click", ".close", function() {
$(this).closest(".feed").fadeOut();
});
.feed {
width: 200px;
height: 200px;
background: red;
position: relative;
}
.close {
position: absolute;
top: 0;
right: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="feed">
<div class="close">
X
</div>
</div>
关于javascript - 为什么 closest() 在遍历树之前首先找到它自己的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34046701/
假设我有一个包含两列的表,如下所示 Size | Time | ------------------ 215 | 24868 | ------------------ 105
我不知道需要更改什么才能消除此错误: Gradient has outdated direction syntax. New syntax is likeclosest-side at 0 0 ins
我有一个包含多行的表。每行都有一个“显示详细信息”按钮和一个“隐藏详细信息”按钮。单击“显示详细信息”后,我希望隐藏详细信息按钮仅显示特定行。我认为 .closest() 函数可以工作,但还没有。 这
今晚在处理一个项目时,我最终为两个不同的页面使用了一个 .js 资源文件。一个页面包含 div 内的文本区域,另一页面包含 td 内的文本区域。想要与此文本区域的 sibling 及其父级的其他子级一
jQuery documentation州 For each element in the set, get the first element that matches the selector b
jquery closest 的文档说明如下: .closest( selector [, context ] ) ... context Type: Element A DOM element wi
我刚刚得到的信息是我的 jQuery 函数无法在 IE 和 Edge 上运行。在控制台中我有消息: 对象不支持“最接近”的属性或方法 这是 jQuery: $('body').on('change',
我目前正在将剑道网格 A 的数据设置为剑道网格 B。但是我遇到了无法读取剑道网格中未定义的属性“最接近”的问题 请帮助我.. 这是kendo B按钮的onclick代码 $("#add-Resour
我有一个 jquery 代码,可以在悬停图像时为 div 制作动画。它工作正常,但问题是我有多个具有相同类的图像和 div,并且动画同时发生在所有图像中。 我需要这个脚本在每个图像/div 中单独工作
$(".toggle-more-less").click(function() { $(this).closest(".article").toggleClass("show-hide
这是我的问题: 我有一个网格,其中图像为灰色,悬停时图像会着色(该图像无法设置为背景图像以获取信息)。 当鼠标悬停在图像上时,会出现一条文本,如果我将鼠标悬停在该文本上方,图像将停止着色。 为了解决这
这是一个更大的应用程序的一部分。 我想做的是在 Jquery 中使用 .closest 提交表单时获取 span1 中的文本。 span1 = $(this).closest("span").html
致所有人:抱歉,如果我不理解 StackOverflow 的协议(protocol)。我将立即努力纠正我在社区中的地位。话虽如此: 我试图根据调用它的内容来更改 jQuery 函数的上下文。在下面的代
目的是在页面加载时突出显示所选单选按钮的单元格。 我有以下代码: JS Fiddle . HTML c
我有这样的 HTML 我想通过单击 btn-go 获取 lat/lon/q 类的值。我知道我们可以使用最接近的方法来做到这一点,但我无法以某种方式实现这一目标。 我的JS $(document
有人可以解释一下为什么要替换以下内容 $('.post_title a').hover(function () { $(this).parent().parent().parent().par
我需要选择输入上方的标签并获取其文本。 有时是这样的: Label q1 有时是这样的: Label q2 我已与 prev() 并列但有时会有在
HTML Normal Cardsshow code <div class="tm card"> ...
我有以下列表: box-shadow:0px 0px rgb(200,200,200);Click 现在我想存储变量内的文本。 我编写了以下代
我有以下 html 结构: 当使用以下 JS 时,我认为它会很好,但它不起作用。没有错误或任何错误,只是行不通。 $('.help').on('click', function () { $(
我是一名优秀的程序员,十分优秀!