1

有没有更好的方法来编写这个函数?我很确定我这里只需要一个函数,但我不知道怎么写!

(function(jQuery){
    jQuery.fn.codeexists = function(code) {
        var codeexist = false;
        jQuery('#fault-list-tbl tbody tr').each(function (i, row) {
            var id = jQuery(this).find('.fault-tbl-code').html();
            if (id == code) {
                codeexist = true;
            };
        });
        if (codeexist) {
            return true;
        } else {
            return false;
        };
    }; 
})(jQuery);
4

2 回答 2

5

这可能要简单得多:

jQuery.fn.codeexists = function(code) {
    return jQuery('#fault-list-tbl tbody tr .fault-tbl-code').filter(function() {
        return this.html() === code;
    }).length > 0;
};

filter将元素过滤到仅具有htmlof 的元素code,以及length元素的数量。因此,如果有超过 0 ( length > 0) 个元素code作为它们的html,则返回 true。

于 2013-11-11T02:00:44.150 回答
2

你也可以这样写:

(function($){
    $.fn.codeexists = function(code) {
        var codeexist = false;
        $('#fault-list-tbl tbody tr .fault-tbl-code').html(function (i, id) {
            if (id == code) {
                codeexist = true;
            };
        });
        return codeexist;
    }; 
})(jQuery);
于 2013-11-11T02:01:01.413 回答