如何使用jQuery获取第二个父级的类名

时间:2011-10-16 07:42:44

标签: jquery

当我点击展开图片时,我需要获取第二个父级的类名。

例如,如果我单击第一个div中的展开图像,我需要获取类名test-one-heading

如果我点击第二个div,我需要获得类名test-two-heading

<div class="content">
<div class="left-activity-block test-one-heading">
<div class="clearfix leftsidebar-title  title-active"> 
<h2>TEST 1</h2>
<div style="cursor: pointer;" class="collapse-symbol filter-plus-symbol"><img width="12" height="12" title="" alt="" src="/sites/all/themes/images/icons/expand.png"></div>
</div>
</div>

<div class="content">
<div class="left-activity-block test-two-heading">
<div class="clearfix leftsidebar-title  title-active"> 
<h2>TEST 2</h2>
<div style="cursor: pointer;" class="collapse-symbol filter-plus-symbol"><img width="12" height="12" title="" alt="" src="/sites/all/themes/images/icons/expand.png"></div>
</div>
</div>

如何使用jQuery执行此操作?

4 个答案:

答案 0 :(得分:3)

您可以将click事件与图片相关联,然后点击您可以使用:

$(this).closest(".left-activity-block").attr("class");

你会得到两个类名,你可以过滤你需要的那个。

答案 1 :(得分:1)

试试这个:

  

var secondParentName = $(“myElement”)。parent()。parent()。attr(“class”);

答案 2 :(得分:0)

您需要做的就是从图像中备份DOM,在找到.left-activity-block时停止,抓取该元素上的所有类,找到不是left-activity-block的类:

$('img').click(function() {
    var div     = $(this).closest('.left-activity-block')[0];
    var classes = div.className.split(/\s/);
    for(var i = 0; i < classes.length; ++i)
        if(classes[i] != 'left-activity-block')
            alert(classes[i]);
});

演示:http://jsfiddle.net/ambiguous/GkpkE/

答案 3 :(得分:0)

这段代码怎么样?

$(document).ready(

function() {
    $("img").click(

    function() {
        alert($($(this).parents("div")[2]).attr('class').split(/\s+/)[1]);
    });
}

);