如何在javascript中选择父div的父级?

时间:2014-04-25 10:50:25

标签: javascript jquery html css

我使用Javascript设置了自定义手风琴。目前正在使用onclick我将一个样式切换到父div(目前持有一个" card"并添加" card-open")。我的问题是如何进入一个div并开始用类#34; time-steam-event&#34 ;?来操纵div。

直播示例:http://bit.ly/1rr6zGA

HTML:

<div class="time-stream-event" id="{entry_id}">
    <div style="background: url({timeline_item_img}) no-repeat center center;" class="event-bg grayscale"></div>
    <div class="card">
        <h3><a href="{title_permalink="/timeline"}">{title}</a></h3>
        <div class="event-year">{timeline_item_date format="%F %Y"}</div>
        <a href="#" class="togglelink"></a>
        <div class="toggle-box">
            <p>{timeline_item_description}</p>
            <div class="employees">Number of Employees</div>
            <div class="employee-count-no"> <i class="ss-icon">&#x1F465;</i> {timeline_item_employees}</div>
        </div>
        <div class="open-arrow"></div>
    </div>
</div>

使用Javascript:

$.fn.slideFadeToggle  = function(speed, easing, callback) {
    return this.animate({opacity: 'toggle', height: 'toggle'}, speed, easing, callback);
};

$('.toggle-box').hide();

$('a.togglelink').on('click', function (e) {
    e.preventDefault();
    var elem = $(this).next('.toggle-box')
    $('.toggle-box').not(elem).hide();
    elem.slideFadeToggle();

    var parent_div = $(this).parent().toggleClass('card-open');

});

4 个答案:

答案 0 :(得分:1)

document.getElementsByClassName("togglelink")[0].parentElement;

这是如何使用Javascript。

 document.getElementsByClassName("togglelink")

返回具有“togglelink”类的元素数组。你需要得到精确元素。如果你只有一个元素我的代码就好了。

答案 1 :(得分:0)

您可以使用.closest().parents()

var obj= $(this).closest('.time-steam-event');//reference to closest .time-steam-event

var obj= $(this).parents('.time-steam-event');//reference to closest .time-steam-event

答案 2 :(得分:0)

你可以这样:

var parent_div = $(this).parent().parent();

或:

var parent_div = $(this).parent().closest(".time-steam-event");

答案 3 :(得分:0)

如果您的div位于层次结构中的第二个位置(按级别),则可以使用

var yourdiv = $(this).parent().parent();

或者您可以使用.closest()

var yourdiv = $(this).closest('.time-steam-event');