Mensch Mensch - 2 years ago 124
Ajax Question

jQuery .find() on data from .ajax() call is returning "[object Object]" instead of div

Trying to find

element with
in returned data from
. Unfortunately,
doesn't return

Here is my code:

url: url,
cache: false,
success: function(response) {
result = $(response).find("#result");
alert(response); // works as expected (returns all html)
alert(result); // returns [object Object]

Answer Source

To answer your question specifically, it seems to be working correctly. You said that it returns [object Object], which is what jQuery will return with the find("#result") method. It returns a jQuery element that matches the find query.

Try getting an attribute of that object, like result.attr("id") - it should return result.

In general, this answer depends on whether or not #result is the top level element.

If #result is the top level element,

<!-- #result as top level element -->
<div id="result">
<div id="other-top-level-element"></div>

find() will not work. Instead, use filter():

var $result = $(response).filter('#result');

If #result is not the top level element,

<!-- #result not as top level element -->
  <div id="result">

find() will work:

var $result = $(response).find('#result');
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download