查找具有给定类JQuery的最近元素
我有这个查找具有给定类JQuery的最近元素,jquery,Jquery,我有这个HTML: <div class="field select"> <div class="FormToolTipContainer"> <h2>Details</h2> <div class="FormToolTip">? </div> <
HTML
:
<div class="field select">
<div class="FormToolTipContainer">
<h2>Details</h2>
<div class="FormToolTip">?
</div>
</div>
</div>
<div class="FormToolTipText"><strong>Tool tip:</strong> Add details here</div>
在这里,我试图通过使用此
上的最近的
选择器来查找元素FormToolTipText
,但它不起作用
我也尝试了next
,但没有成功
是否因为元素FormToolTip
在FormToolTip
据我所知,我在这里遵循了以下说明:
还有很多问题,但没有一个会选择我尝试过的元素
正如我所说的,我已经尝试了我能想到的每一种变化,我能找到的每一种,但都不起作用
基本上,我正在尝试制作一个工具提示,需要使用类FormToolTipText
导航到最近的div,但只能在与此
有什么想法吗?
.FormToolTipText
不是.formtooltipt
的父项。所以你根本无法得到它。您需要做的是,使用.closest()
获取父对象并使用.next()
遍历到。FormToolTipText
:
var ToolTipDiv = $(this).closest('.field').next('.FormToolTipText');
.FormToolTip
不是.FormToolTip
的父级。所以你根本无法得到它。您需要做的是,使用.closest()
获取父对象并使用.next()
遍历到。FormToolTipText
:
var ToolTipDiv = $(this).closest('.field').next('.FormToolTipText');
closest()
只查看父元素,而您需要向上两级查找下一个元素
还要注意,您使用的css()
也不正确-您需要指定要修改的css属性。试试这个:
$(".FormToolTip").hover(function() {
var $tooltipDiv = $(this).closest('.field').next('.FormToolTipText').toggle();
var toolipOffset = $(this).offset();
$tooltipDiv.css('top', toolipOffset.top + 40); // this is a guess, amend as needed
}, function() {
var $tooltipDiv = $(this).find(':first-child');
$tooltipDiv.toggle();
});
closest()
只查看父元素,而您需要向上两级查找下一个元素
还要注意,您使用的css()
也不正确-您需要指定要修改的css属性。试试这个:
$(".FormToolTip").hover(function() {
var $tooltipDiv = $(this).closest('.field').next('.FormToolTipText').toggle();
var toolipOffset = $(this).offset();
$tooltipDiv.css('top', toolipOffset.top + 40); // this is a guess, amend as needed
}, function() {
var $tooltipDiv = $(this).find(':first-child');
$tooltipDiv.toggle();
});
谢谢你的回答。注意,您可以传入整个偏移量,也可以传入单个坐标。请看这里被接受的答案:真的。执行此操作时请小心,因为尽管对象属性名称匹配,但由于相对于父元素和窗口的位置不同,它们可能并不总是预期的值谢谢您的回答。注意,您可以传入整个偏移量,也可以传入单个坐标。请看这里被接受的答案:真的。执行此操作时请小心,因为尽管对象属性名称匹配,但由于相对于父元素和窗口的位置不同,它们可能并不总是预期的值