Thanks, Rey. Trimming the output allows it to display correctly. 

Of note: The callback for my new $.get() contains another (different)
$.get(). The inner $.get() doesn't use a callback, but when I first switched
the outer call over from .load(), IE reported this:

    Line: 1615
    Error: 'constructor' is null or not an object

Line 1615 in jquery.js is this:

    if ( data.constructor == Function ) {

...which is inside something called 'extend', so I expect there may be some
sort of inheritance issue at play. To get rid of the error, I added an empty
callback to the inner $.get(), i.e. this:

    $.get('/path/to/ajax/stuff/');

...became this:

    $.get('/path/to/ajax/stuff/',function(){void(null);});


- jason







Rey Bango-2 wrote:
> 
> Jason,
> 
> I had a similar problem which ended up being a problem with the way that 
> my server-side programming language, ColdFusion, was returning the rows. 
> There was a ton of leading and trailing spaces in the response packet so 
> once I trimmed that, it was able to insert my rows successfully. My code 
> looks very similar to yours.
> 
> I tried using Firebug to show me the response but the best results I got 
> were with IE and ServiceCapture. That showed me how the response packet 
> was malformed. Try out the latter to see if you're experiencing the same 
> issue.
> 
> Rey...
> 
> Jason Huck wrote:
>> I ran into this problem today, trying to replace the contents of a
>> <tbody>,
>> but so far John's suggested workaround isn't quite doing the trick.
>> .load()
>> works everywhere except in IE.
>> 
>> Using alternate code as suggested:
>> 
>> $.get('/path/to/ajax/page/', function(thehtml){
>>      $("tbody#foo").empty().append(thehtml); 
>> });
>> 
>> ...the empty() fires, but the append() somehow doesn't insert thehtml
>> correctly. thehtml is pretty basic, looks something like this:
>> 
>> <tr>
>>      <td>blah</td><td>blah</td><td>blah</td>
>>      <td>blah</td><td>blah</td><td>blah</td>
>>      <td>blah</td><td>blah</td><td>blah</td>
>> </tr>
>> <tr>
>>      <td>blah</td><td>blah</td><td>blah</td>
>>      <td>blah</td><td>blah</td><td>blah</td>
>>      <td>blah</td><td>blah</td><td>blah</td>
>> </tr>
>> 
>> What's really strange is, I _can_ get it to show up by doing this:
>> 
>> $.get('/path/to/ajax/page/', function(thehtml){
>>      $("tbody#foo").empty().append('<tr><td>' + thehtml + '</td></tr>');     
>> });
>> 
>> ...which I initially did just to verify that I was getting a result back.
>> This, though, screws up later code that operates on the newly added
>> nodes,
>> as well as just plain being wrong as far as I can tell.
>> 
>> Any ideas?
>> 
>> Thanks,
>> Jason
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> John Resig wrote:
>> 
>>>
>>>IE really hates dealing with Tables and innerHTML (which is what
>>>.load() uses). An alternative may look something like this (untested):
>>>
>>>$.get('ajaxClassObjects.act?type=5&id=9',function(html){
>>>    $("#objects").empty().append( html );
>>>});
>>>
>>>It's worth a shot - let me know if that helps.
>>>
>>>--John
>>>
>>>
>> 
>> 
> 
> _______________________________________________
> jQuery mailing list
> discuss@jquery.com
> http://jquery.com/discuss/
> 
> 

-- 
View this message in context: http://www.nabble.com/Bug--tf2099071.html#a6639578
Sent from the JQuery mailing list archive at Nabble.com.


_______________________________________________
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/

Reply via email to