запустить jQuery для переменной, а не для документа - PullRequest
3 голосов
/ 18 сентября 2010

Знаете ли вы, возможно ли запустить jQuery для переменной, содержащей html, а не только для самого документа.

Пример:

bg.inspectorGetRawHtml = function(){
    var c = jQuery("#bg-admin-inspect-wrapper").html();
    jQuery(".bg-admin-inspect-state", c).remove();
    console.debug(c);
}

Итак, в основном, чтение сегментастраницы переводятся в переменную html и затем выполняются манипуляции с jQuery для этой строки.

Если я console.debug удаляет фактическое удаление jQuery, похоже, что выполняется сопоставление, но var не обрабатывается.Я знаю, что jQuery опирается на DOM, и, возможно, именно поэтому он не работает, но если у кого-то есть понимание этого ... Редактировать После предложения одного дня вот код, с которым я закончил:

bg.inspectorGetRawHtml = function(){
    var c = jQuery("#bg-admin-inspect-wrapper").clone();
    jQuery(".bg-admin-inspect-state", c).remove(); //The ,c specifies what element to work on.
    console.debug(c.html());
}

1 Ответ

4 голосов
/ 18 сентября 2010

Вам нужна функция $ (). Detach:

bg.inspectorGetRawHtml = function(){
    var c = jQuery("#bg-admin-inspect-wrapper").detach();
    console.debug(c);
}

Это удалит выбранный элемент из DOM и позволит вам выполнять над ним операции jQuery.


Редактировать Вы также можете создать фрагмент HTML из строки и превратить его в выбор JQuery и работать с ним.Например,

$(document).ready(function() {
    var newText = '<div><p>Some text here</p><img src="image.png" /></div',
        $newDiv = $(newText);

    $newDiv.addClass('someClass');

    $('body').html($newDiv);
});

Это создает новый div с абзацем содержимого и изображением, добавляет класс "someClass" в div и заменяет содержимое страницы новым div.

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