tags:

views:

101

answers:

1

Hi,

I am writing an application that converts an ajax xml response into html using client side xslt transformation. The transformation is achieved using following snippet, which works fine -

    transform:function(xml){
            if (window.XSLTProcessor){
                    var xsltProcessor = new XSLTProcessor();
                    xsltProcessor.importStylesheet(Xmer.xsldoc);
                    var outputXHTML = xsltProcessor.transformToFragment(Xmer.makeXml(xml), document);
                    document.getElementById('tree').appendChild(outputXHTML.cloneNode(true));
            }
            else if(window.ActiveXObject){  //Internet Explorer
                    var d=Xmer.makeXml(xml);
                    var outputXHTML = (d).transformNode(Xmer.xsldoc);
                    document.getElementById('tree').innerHTML=outputXHTML;
            }
    }

But problem is encountered in FF when i try to process the inserted tags using jquery's find method. I am trying to fetch all the divs with a specific class name that were inserted by the above code; using the following -

    var d=$document.find('div.pointer');
    alert ($('div.pointer').length);
    alert (d.length);

but the above alerts always return "0" length. The same code works fine in IE. I am using jquery 1.3.2.

to add more to the above, I did some research on documentFragments and found following on http://ejohn.org/blog/dom-documentfragments/#comment-319149 (need to click "Show Comments" to reach this place) -

"# Obvious, but sometimes overlooked: the fragment is self contained. This means, the fragment doesn't have access to objects outside of it (i.e. part of the main document). Thus, even if you have CSS classes (class attribute) set in an element, it is not possible to query based on properties set and/or modified by that CSS class. Basically the classes set in the class attribute, if defined outside the fragment, become just simple labels."

so this means searching elements inside the fragment is not supported.

Is there any work around available for this?

I apologize if something along these lines has been discussed earlier and would appreciate if someone guides me in this.

Thanks, amit

+1  A: 

Here is a patch of sizzle (jquery's search library) that allows search on Fragments:

http://github.com/spocke/sizzle/commit/bc6ff34737ff57da18497bef301bbbaffdfb9b7e

Olivvv