- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这些有什么区别?其中一个比另一个更有效率吗?我有点困惑为什么它们都存在。假设我有这个标记:
<table>
<tr>
<td>...</td>
<td><span class='toggle'>Toggle</span></td>
</tr>
<tr>
<td>...</td>
<td><span class='toggle'>Toggle</span></td>
</tr>
<tr>
<td>..</td>
<td><span class='toggle'>Toggle</span></td>
</tr>
</table>
来自<span>
我可以使用任一标签 $(this).closest('tr');
或$(this).parents('tr');
访问父级/最近的 <tr>
标签。
最佳答案
(注意:问题在提出后的第二天进行了编辑,将问题从关于 parent
更改为关于 parents
[注意复数]。哪一种会有所不同!)
回复您关于 parent
的原始问题(单数)与closest
: parent
只会上升一级。 closest
从当前元素(不仅仅是父元素)开始,并不断搜索祖先元素,直到找到匹配项(或耗尽祖先元素)。
回复您关于 parents
的更新问题 (复数)与closest
:有两个区别:
是否考虑当前元素(带有 closest
,不带有 parents
)。
搜索是否在第一个匹配项处停止(对于 closest
则停止,对于 parents
则不停止)。
来自您的原始问题:
From the tags I could use either $(this).closest('tr'); or $(this).parent('tr');
不,实际上。 $(this).parent('tr');
将返回一个空的 jQuery 对象,因为 span
的父对象与选择器不匹配。
根据您的更新问题:
From the tags I could use either $(this).closest('tr'); or $(this).parents('tr');
你可以,只要你的tr
不在另一个 tr
之内(例如,一个表包含一个表)。如果是这样的话,您将得到相同的结果。但是如果你有一个表中的表,带有 parents
你会得到多个tr
s(祖先 tr
元素的所有)。
考虑这个结构:
<div class="wrapper">
<div class="inner">
<p>Testing <span>1 2 3</span></p>
</div>
</div>
如果我们 Hook click
关于span
,这是我们从三个相关方法返回的结果:
$(this).parent('div')
- 空 jQuery 对象,span
的父对象不是div
.$(this).parents('div')
- 带有 two 的 jQuery 对象 div
其中,“内部”和“包装”div(按顺序)。$(this).closest('div')
- 带有 one 的 jQuery 对象 div
其中,“内在”的。这是如果我们 Hook click
的结果关于span
并使用span
作为选择器:
$(this).parent('span')
- 空 jQuery 对象,span
的父对象不是span
.$(this).parents('span')
- 空 jQuery 对象,span
无祖span
$(this).closest('span')
- 带有 span
的 jQuery 对象已被点击。关于jquery - .closest() 和 .parents ('selector' ) 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8975985/
假设我有一个包含两列的表,如下所示 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 () { $(
我是一名优秀的程序员,十分优秀!