$ .each()在构造函数上? (无法调用未定义的方法'each')

时间:2013-06-06 21:57:59

标签: jquery constructor undefined each

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

$('<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;
            })
        });
    }
}

1 个答案:

答案 0 :(得分: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
}