-1

我想从插件内的 each() 循环中删除和元素,所以我只会返回一些特定的元素。但到目前为止我做了很多测试,我仍然无法删除该项目。

(function($){

$.fn.teste = function(parametro){

    var parametro_padrao = {};
    if (parametro){$.extend(parametro_padrao, parametro);}

    return this.each(function(){

        //if certain condition happens I want to remove an element  so it will not be returned in the "return" clause above

    });


};

})(jQuery);

编辑:

:hidden 或 :visible 不好,因为它们使用偏移量,我认为这是一个坏主意。

一段时间后,我找到了一个很好的解决方案,我会分享,这样其他人就不会像我一样浪费时间:

(function($){

$.fn.visivel = function(parametro){

    var parametro_padrao = {};
    if (parametro){$.extend(parametro_padrao, parametro);}

    elemento = this;
    this.each(

        function(index){

            $(this).parents().andSelf().each(

                function() {

                    if (   ($(this).css("display") == "none")   ||   ($(this).css("visibility") == "hidden")   ) {

                        delete elemento[index];
                        return false;

                    }

                }

            );      

        }

    );

    return elemento;

};

})(jQuery);
4

1 回答 1

1

使用过滤器():

return this.filter(function(){
         return mycondition?true:false;
    });
于 2013-05-22T22:48:47.333 回答