在IExplorer 8中使用jquery中的length不能检查div是否存在

时间:2010-08-18 15:02:32

标签: jquery html

我有这段代码,

window.onload = function(){
    if($('div.colorPicker').length){
        $("div.colorPicker").click(function(){
            if($('.field_sku').length){
                code = $(this).children('.tmpSKU').html();
                if(!code || code==null){
                    code = "Item Code not set yet";
                }
                $('.field_sku').filter(".value").html(code);
            }
        });
    }
}

我将此应用于使用jquery创建的自定义模块。它在safari,firefox,chrome中运行正常,但在IE8中没有,我认为它可能在其他版本的IE中也不行。 我收到此错误

'length' is null or not an object on 
imagemultiple.js                                    line 2
Code:0                                              char 2

没有这个

if($('div.colorPicker').length){
}

它在其他浏览器中工作得很好我在错误之后添加了IE,但它一直带来错误。

我对Mootools和Jquery的怀疑是,他们可能会在那里发生冲突。由于某些原因,在IE8中,作为Jquery(在其他浏览器中)的代码可能会尝试用作Mootools。我不知道这是否有意义???

无论如何,一旦页面有一个带有类colorpicker的div,它就可以正常工作了,当它出现问题时就不行了。

1 个答案:

答案 0 :(得分:1)

听起来很奇怪。但是你可能在这里遇到一些冲突问题。尝试

jQuery.noConflict();
(function($) { 
    $(function() {
         if($('div.colorPicker').length){
            $("div.colorPicker").click(function(){
               if($('.field_sku').length){
                  code = $(this).children('.tmpSKU').html();
                  if(!code || code==null){
                     code = "Item Code not set yet";
                  }
               $('.field_sku').filter(".value").html(code);
               }
            });
         }
    });
})(jQuery);