jQuery.parent()似乎不起作用

时间:2010-09-20 19:37:04

标签: jquery parent

.parent()没有返回我指定的父元素。我没有看到我的代码或HTML的任何问题。

使用Javascript:

var vehicle = function () {
    return {
        init: function () {
            var that = this;

            jQuery('.vehicle-year-profile .options .delete').bind('click', function (e) {
                e.preventDefault();
                console.log(e.currentTarget); //  [a.close #]
                that.remove(jQuery(e.currentTarget).parent('.vehicle-year-profile'));
            });
        },
        remove: function (el) {
            console.log(el); // []
            jQuery(el).remove();
        }
    }
}();
jQuery(function() {
    vehicle.init();
});

HTML:

    <div id="vehicle-101031994" class="vehicle-year-profile">
                                        <div class="left">
                                            <h4>1994</h4>
                                        </div>
                                        <div class="right options">
                                            <a class="edit" href="#"><img class="icon-small" src="/image/icons/pencil.png"></a>
                                            <a class="delete" href="#"><img class="icon-small" src="/image/icons/delete.png"></a>
                                        </div>
                                        <div class="clear"></div>
</div>

2 个答案:

答案 0 :(得分:4)

您引用的元素不是直接父级。

请改为尝试:

that.remove(jQuery(this).closest('.vehicle-year-profile'));

答案 1 :(得分:3)

这是because

  

.parents()和.parent()方法类似,只是后者只在DOM树中向上移动一层。

您要查找的父级是两级,因此您必须使用.parents()(甚至更好.closest())。