我正在編寫一個應用程序,它使用客戶端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類設置和/或修改的屬性。基本上, 在類屬性中設置的類,如果定義在片段外部,則 僅變爲簡單標籤。「
所以這意味着不支持在片段內搜索元素。
是否有任何解決方法可用於此?
我很抱歉,如果沿着這些方向的東西已經在前面討論過 ,並且如果有人在此引導我,我將不勝感激。
感謝, 阿米特