используя метод поиска jquery на присоединенном узле documentFragment - PullRequest
1 голос
/ 12 июня 2009

Я пишу приложение, которое конвертирует ответ ajax xml в HTML с использованием XSLT-преобразования на стороне клиента. Преобразование достигается с помощью следующего фрагмента, который отлично работает -

    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.

Чтобы добавить больше к вышесказанному, я провел некоторые исследования по фрагментам документа и найденный следующий за http://ejohn.org/blog/dom-documentfragments/#comment-319149 (нужно нажать «Показать комментарии», чтобы добраться до этого места) -

"# Очевидно, но иногда упускается из виду: фрагмент самодостаточен. Это означает, что фрагмент не имеет доступа к объектам за его пределами (т.е. часть основного документа). Таким образом, даже если у вас есть классы CSS (атрибут класса), установленный в элементе, невозможно выполнить запрос на основе на свойства, установленные и / или измененные этим классом CSS. В основном классы, установленные в атрибуте class, если они определены вне фрагмента, стать просто ярлыками. "

, значит, поиск элементов внутри фрагмента не поддерживается.

Есть ли какое-нибудь решение для этого?

Прошу прощения, если что-то подобное обсуждалось ранее и был бы признателен, если бы кто-нибудь направил меня в этом.

Спасибо, amit

1 Ответ

2 голосов
/ 10 декабря 2009

Вот патч sizzle (поисковая библиотека jquery), который позволяет искать по фрагментам:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...