开发者

is this object empty, Javascript

I have an ajax system set up. When the MySQL query returns no data, I need it to pass an empty object back. I create a node called 'data' in the php script and even when the query returns no data I pass $data['success'] = 1.

The trick is I can't figure out how to check to see if the query was returned data or not.

I have tried...

// sub responseObj.data for responseObj.data[0] for the following if's
if(responseObj.data[0].length == -1)  

if(responseObj.data[0] == null)

if(responseObj == undefined)
//edit: added this...
if(!responseObj.data[0])

and I've really lost tack of any other various snippet's i've tried.

EDIT: adding xml generated that is passed to my script

XML - returning zero results

<response_myCallbackFunction>  
  <success>1</success>  
<response_myCallbackFunction>

XML - returning a populated query

<response_myCallbackFunction>  
  <data> 
  <random_data>this is data</random_data>  
  </data>  
  <success>1</success>  
<response_myCallbackFuncti开发者_如何学Pythonon>

Is there a way to check to see if an object is empty in javascript?

-thanks


Obj.hasOwnProperty('blah') does not seem to work for checking to see if the property exists.

function isEmptyObj(obj){
  for(var i in obj){
    return false;
  }
  return true;
}

isEmptyObj({a:1}); //returns true

isEmptyObj({}); //returns false


You could try

if( responseObj["data"] ) {
   // do stuff with data
}

or

if( responseObj.hasOwnProperty("data") && responseObj.data ) {
   // do stuff with data
}


if(typeof responseObj.data != 'undefined') {
   // code goes here
}


for ES5 you have getOwnPropertyNames :

var o = { a:1, b:2, c:3 };
Object.getOwnPropertyNames(o).length // 3


If responseObj is the XML Document object (from the xhr.responseXML property), then:

if (responseObj.getElementsByTagName("data").length > 0) {
    // do stuff...
}

If responseObj is a JavaScript object:

if (responseObj.data) {
    // do stuff...
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜