2014-12-10 3 views
0

Я делаю почтовый индекс greasemonkey, который должен предварительно загружать определенные данные (фактически, xkcd comic полоски) и отображать их при нажатии ссылки.Использовать jQuery с моим собственным объектом документа

Моя задача состоит в основном извлечения данных из DOM, полученных с помощью ajax, и назначения значений DOM, которые пользователь просматривает. Это один конкретный случай, когда я нахожу jQuery невероятно полезным. Но jQuery работает на window.document.

Загрузка и разбор документа like this:

xhr.onload = function() { 
     var doc = document.implementation.createDocument(
     'http://www.w3.org/1999/xhtml', 
     'html', 
     document.doctype 
     ); 
     doc.documentElement.innerHTML = this.responseText; 
    } 

И мне нужно выполнить JQuery селекторы на doc, так что я могу получить данные сайта (например, комического название).

Еще раз, вопрос: как выполнить селектор jQuery на пользовательском объекте документа?

+3

ли '$ (документ)' не работа? – Rhumborl

+1

use $ (doc) .find (selector) –

+0

$ (doc) сделает работу –

ответ

3

Вы можете просто использовать $(doc) и JQuery-ые годы методы обхода:

var $doc = $(doc); 

var comicContainer = $doc.find('#comics'); // for example 
+0

Не ожидал, что это будет так просто ... –

0

Чтобы добавить, например, события нажатия на заказ нагруженные элементы, используйте:

$(body).on('click', 'YOUR_DYNAMIC_SELECTOR', function(){ DO_ALL_THIS }) 
+0

Что такое переменная 'body' здесь? –

+0

Это всего лишь тело html. Это не должно быть телом, в конечном итоге, в нем есть селектор элемента, который содержит весь ваш динамически загруженный html. –

+0

Щелчок будет стрелять по щелчку элемента, выбранного в $(), но будет искать YOUR_DYNAMIC_SELECTOR, который имеет отношение к щелчку –

Смежные вопросы