2010-12-10 71 views
3

假設一個函數接受一個參數,該參數是否包含在jQuery對象中的DOM元素或JSON,那麼如何告訴另一個呢?測試DOM元素還是JSON

+0

僅供參考,你所謂的JSON對象實際上是調用JavaScript對象; JSON僅僅是一個JS對象(JavaScript Object Notation)的符號。 – 2010-12-10 11:23:40

+1

JSON必須是純文本。否則,它不再是JSON: - ? – 2010-12-10 11:48:20

+0

@Álvaro - 確實,它必須符合[規範](http://json.org/)。 – 2010-12-10 12:17:53

回答

2

你可能尋找的是這樣的:

var get_unknown_element = function(element) { 
     var ele  = element, 
      type = Object.prototype.toString.call(ele); 

     // string as passed in, we just assume it to be a jQuery (or querySelectorAll) selector string 
     if(type === '[object String]') {     
      return (function(e){ 
       return e.length ? e : null; 
      }($(ele))); 
     } 
     // an object was passed in, if we have an jquery object & length > 0, just return it 
     else if(type === '[object Object]' && ele.jquery && ele.length) { 
      return ele; 
     }  
     // native DOM object (node) was passed in, just call the jQuery constructor on it & return   
     else if(/^\[object HTML/.test(type)) { 
      return $(ele); 
     } 
     // return null on no match 
     else return null;       
};