2010-12-10 5 views
3

関数が、jQueryオブジェクトにラップされているDOM要素またはJSONかどうかを1つの引数で受け入れると仮定します。DOM要素またはJSONのテスト

+0

FYI、あなたはJSONオブジェクトを呼んで、実際にJavaScriptオブジェクトと呼ばれます。 JSONはJSオブジェクト(JavaScript Object Notation)の表記にすぎません。 –

+1

JSONはプレーンテキストでなければなりません。さもなければ、それはもうJSONではありません: - ? –

+0

@Álvaro - 確かに、それは[spec](http://json.org/)に従わなければなりません。 –

答えて

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;       
}; 
関連する問題