我有一些具有类名hover
的div元素,这些div元素的父div具有类名hoverparent
,但这些父元素的id不同。
是否可以在我的.hoverparent
div元素上悬停时获取相应.hover
元素的ID?
我试图通过以下方式得到这个:
$('.hoverparent').attr('id')
但每次都会给出相同的第一个父ID。
结构就像:
<div class="hoverparent" id="hover-1">
<div class="hover">ABC</div>
</div>
<div class="hoverparent" id="hover-2">
<div class="hover">DEF</div>
</div>
答案 0 :(得分:4)
您需要使用parent
或closest
函数遍历DOM树以查找您要查找的“父”元素:
$(".hover").hover(function() {
var $parent = $(this).closest(".hoverparent");
alert($parent.attr("id"));
});
parent
和closest
之间的区别在于,第一个仅在.hoverparent
元素是.hover
的直接父时才有效元件; closest
将向上搜索所有祖先以查找它。
答案 1 :(得分:1)
在你的悬停回调中尝试$(this).parent()。attr('id')。
答案 2 :(得分:0)
$('.hover').mouseover(function() {
$(this).parent().attr('id');
});
答案 3 :(得分:0)
不要叫你的班级悬停。这应该工作
$(".hover").hover(
function () {
var id = $(this).parent().attr('id');
});
答案 4 :(得分:0)
像这样添加每个循环:
$(".hoverparent").each(function(){
var id=$(this).attr("id");
alert(id);
});
答案 5 :(得分:0)
在悬停事件的处理程序中使用父方法:
$('.hover').hover(function(evt){
var par = $(this).parent().attr('id');
//Now do with ID what you need
},
function(evt){
//presumably you don't need anything for mouseout
});
答案 6 :(得分:0)
您可以尝试使用parent()方法。 像这样:
$('a').click(function(){
var parentId = $(this).parent('div.hoverparent').attr('id');
});
答案 7 :(得分:0)
$(".hover").hover(function(){
console.log($(this).closest(".hoverparent").attr("id"));
});
答案 8 :(得分:0)
尝试以下方法:
$('.hover').hover(function() {
var parentID = $(this).parent().attr('id'); alert(parentID);
});