2016-08-23 2 views
0

Я пытаюсь изменить HTML-строку (например, добавить класс к одному из своих дочерних элементов). В моем коде я должен использовать container как посредине, чтобы вывести $html в виде строки. Предоставляет ли jQuery любую функцию для этого?генерирует HTML из набора объектов jQuery?

html = "<p>title</p><div><ul class='www'></ul>something</div>"; 
    $html = $(html); 
    $html.filter('div').find('ul').addClass('xxx'); 
    container = $('<div></div>'); 
    html = container.html($html)[0].innerHTML; //output "<p>title</p><div><ul class='www xxx'></ul>something</div>" 
+0

Я не понимаю, вы хотите написать '$ html' (после добавления класса) в виде строки вместо создания элементов DOM? – martriay

+0

Да, я хочу, чтобы это как строка, и здесь нет реального DOM. – shenkwen

+0

@guradio Я спрашиваю, могу ли я сделать это без введения 'container' – shenkwen

ответ

0

Nope.

Невозможно избежать взаимодействия с DOM (это создание или выбор существующего элемента), лучше всего вы можете использовать document.write свою строку, но вам нужно будет scape the HTML, чтобы она не интерпретировалась как HTML но текст. Обратите внимание, что document.write работает только до того, как документ завершит загрузку.

Я не знаю ваших потребностей, но я не могу придумать хороший прецедент для этого, ваш jQuery должен быть лучше для большинства случаев.

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