如何使用jQuery获取特定类的ID?

时间:2011-09-05 11:38:26

标签: javascript jquery selector

我有一些具有类名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>

9 个答案:

答案 0 :(得分:4)

您需要使用parentclosest函数遍历DOM树以查找您要查找的“父”元素:

$(".hover").hover(function() {
    var $parent = $(this).closest(".hoverparent");
    alert($parent.attr("id"));
});

parentclosest之间的区别在于,第一个仅在.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"));
});

这里是小提琴http://jsfiddle.net/9dJJ9/1/show/

答案 8 :(得分:0)

尝试以下方法:

$('.hover').hover(function() {
    var parentID = $(this).parent().attr('id');    alert(parentID);
});