2009-06-12 16 views
1

我正在編寫一個應用程序,它使用客戶端xslt轉換將ajax xml響應轉換爲 html。轉型是 使用下面的代碼片段,它工作正常實現 -在documentFragment附加節點上使用jquery的find方法

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; 
      } 
    } 

但問題FF遇到時,我嘗試處理使用jQuery的查找方法插入 標籤。我正嘗試使用由上述代碼插入的特定類名來獲取所有div ;使用 以下 -

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

但上述警報總是返回 「0」 的長度。在IE中使用相同的代碼 。我正在使用jQuery 1.3.2。

更添加到上面,我做了documentFragments一些研究, 發現 繼http://ejohn.org/blog/dom-documentfragments/#comment-319149 (需要點擊「查看評論」到達這個地方) -

「#顯而易見的,但有時會被忽視:片段是自包含的 這意味着片段不能訪問它以外的對象 (即主文檔的一部分)。因此,即使您在元素中設置了CSS類 (class屬性) ,不可能基於 查詢由該CSS類設置和/或修改的屬性。基本上, 在類屬性中設置的類,如果定義在片段外部,則 僅變爲簡單標籤。「

所以這意味着不支持在片段內搜索元素。

是否有任何解決方法可用於此?

我很抱歉,如果沿着這些方向的東西已經在前面討論過 ,並且如果有人在此引導我,我將不勝感激。

感謝, 阿米特

回答