簡體   English   中英

做多位父母的更有效方法

[英]More efficient way to do multiple parents

有沒有更有效的方法來執行以下操作?

$(this).parent().parent().parent().parent().parent().addClass('finished');

請注意,我需要parent概念,因為頁面上有多個相似項。

如果目標是獲得第N個父級,則可以將.parents(selector):eq()選擇器混合使用 ,注意:eq(0)獲得第一個項:

$(this).parents(':eq(4)').addClass('finished');

如果這是您經常使用的東西,而添加適當的選擇器不是一個選擇,那么您可以創建自己的方法來獲得所需的東西:

$.fn.parent_num = function(num) {
    var elem = [];
    this.each(function() {
        var el = this;
        while(num>0) {
            if (el.parentNode) el = el.parentNode;
            num--;
        }
        elem.push(el);
    });
    return $(elem || this);
};

使用方式如下:

$(this).parent_num(5).addClass('finished');

小提琴

如果可以通過CSS選擇器獲取元素,則可以執行以下操作:

$(this).parents('selector');

。父母()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM