0

jQuery 1.7.2 を使用しています

この行は、IE9、Chrome、および Firefox で正常に動作します。

$('.' + product.id + '#' + this).text("foo");

product.idクラスを表すthis文字列であり、ID を表す文字列です。

この行は $.each ループ内にあります。この関数のコード全体は投稿しませんでした。この関数はかなり大きく、エラーはこの行に正確に配置されているためです。

このループで動的に作成されるセレクターの例は次のとおりです。

$('.price#servicesPerMonth').text("foo");

IE8 では、次のエラーが発生します。

Unexpected call to method or property access.  
jquery-1.7.2.js, line 5847 character 5

jQuery のコードは次のとおりです。

append: function() {
    return this.domManip(arguments, true, function( elem ) {
        if ( this.nodeType === 1 ) {
            this.appendChild( elem );
        }
    });
},

5847行目はthis.appendChild( elem );

問題は jQuery セレクターで変数を連結することから来ていると思いますが、thisこれを修正するための代替手段は本当にわかりません。

助言がありますか?

4

1 に答える 1

1

使ってみてください

('.' + product.id + ' #' + this.id).text("foo");

また

('.' + product.id + ' #' + this.attr('id')).text("foo");

大丈夫です、#の前のスペースに注意してください

于 2012-07-03T21:29:37.580 に答える