【问题标题】:How can I check my object type is Image?如何检查我的对象类型是图像?
【发布时间】:2009-09-02 12:31:44
【问题描述】:

如果我这样写:

var img = $(new Image()).attr('src', image.src);

我以后如何检查 img var 是图像而不是其他东西?

【问题讨论】:

    标签: javascript jquery dom


    【解决方案1】:
     if ( img.is('img') ){
    
     }
    

    为了安全起见,我可能想再次将 var 包装在 jQuery 中,以防万一您可能已将 img 更改为 dom 节点或其他...

    if ( $(img).is('img') ){
    
    }
    

    【讨论】:

    • 有没有纯 Javascript 的方式来做到这一点?
    • 试试 if (img.nodeType === 1 && img.tagName === "img")
    【解决方案2】:
    img.filter('img')
    

    如果这返回了一些东西,那么它就是一个图像。

    【讨论】:

      【解决方案3】:

      您应该避免显式类型检查。

      使用多态性来选择必须对图像执行的操作,以及必须对其他对象执行的操作。

      var img = $(new Image())(...);
      img.process = function(){ ... do whatever images need ... };
      objs.push( img );
      
      var txt = new Text();
      txt.process = function(){ .. do text processing, spellcheck, ... };
      objs.push( txt );
      
      ...
      
      objs.each( o ) { o.process(); }
      

      【讨论】:

      • 我正在使用一些画廊代码,它是一个丑陋的代码。有时 img 表示 Image 对象,有时它只是一个 html 代码(flash EMBED 或其他东西),它应该只运行我编写的一些代码,如果 img == Image 对象。
      猜你喜欢
      • 2011-02-14
      • 1970-01-01
      • 2012-01-12
      • 2017-10-28
      • 2010-11-24
      • 1970-01-01
      • 1970-01-01
      • 2011-09-26
      • 1970-01-01
      相关资源
      最近更新 更多