3
関数が、jQueryオブジェクトにラップされているDOM要素またはJSONかどうかを1つの引数で受け入れると仮定します。DOM要素またはJSONのテスト
関数が、jQueryオブジェクトにラップされているDOM要素またはJSONかどうかを1つの引数で受け入れると仮定します。DOM要素またはJSONのテスト
あなたは、おそらくこのような何かを探している:
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;
};
FYI、あなたはJSONオブジェクトを呼んで、実際にJavaScriptオブジェクトと呼ばれます。 JSONはJSオブジェクト(JavaScript Object Notation)の表記にすぎません。 –
JSONはプレーンテキストでなければなりません。さもなければ、それはもうJSONではありません: - ? –
@Álvaro - 確かに、それは[spec](http://json.org/)に従わなければなりません。 –