连接的jQuery选择器在IE8中不起作用

时间:2012-07-03 21:26:47

标签: jquery internet-explorer-8 cross-browser concatenation

我正在使用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变量,但我真的不知道解决这个问题的替代方法。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

尝试使用

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

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

没关系,注意#

之前的空格