0

是否可以$.each()在 jQuery 构造函数上使用?如果是这样,请解释此代码段的问题:

$('<div/>').addClass(
    'forceSmallFont tableLayoutAutoOverride'
).applyHTMLclasses(
    paramaterObject.tableClasses
).each(
    paramaterObject.rows, 
    function(rowKey, rowValue)
        { ...

这是我代码中的一行,它是 chrome 报告错误的地方。

我已确认paramaterObject.rows已定义。

applyHTMLclasses()是一个更容易做的自定义函数,$.removeClass()如果$.addClass()定义paramaterObject.tableClasses了。

$.fn.applyHTMLclasses

$.fn.applyHTMLclasses = function(paramaterObject) {
    if(typeof paramaterObject !== 'undefined'){
        return this.each(function () {
            $(this).addClass(function(){
                return (typeof paramaterObject.classAdditions === 'undefined')?'':paramaterObject.classAdditions;
            }).removeClass(function(){
                return (typeof paramaterObject.classRemovals === 'undefined')?'':paramaterObject.classRemovals;
            })
        });
    }
}
4

1 回答 1

2

applyHTMLclasses大概看起来像这样:

$.fn.applyHTMLclasses = function(classes) {
    this.each(function() {
        // do something
    });
}

它只需要稍作改动即可允许链接方法。

$.fn.applyHTMLclasses = function(classes) {
    this.each(function() {
        // do something
    });

    return this; // add this line
}
于 2013-06-06T22:03:16.230 回答