jQuery插件从每个循环中删除元素

时间:2013-05-22 22:42:01

标签: javascript jquery

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

(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);

编辑:

:隐藏或:可见不好因为他们使用偏移,我认为这是一个坏主意。

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

(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);

1 个答案:

答案 0 :(得分:1)

使用filter():

return this.filter(function(){
         return mycondition?true:false;
    });