0

$.each()jQueryコンストラクターで使用することは可能ですか? もしそうなら、このコード セグメントの問題を説明してください:

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

これは私のコードの 1 行であり、chrome がエラーを報告している場所です。

paramaterObject.rows定義されていることを確認しました。

applyHTMLclasses()は、より簡単に実行できるカスタム関数であり$.removeClass()$.addClass()ifparamaterObject.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 に答える