2016-12-14 3 views
1

Я создаю структуру JavaScript для создания HTML-документов. Сначала виртуальный документ создается с помощью jQuery. Сейчас я экспериментирую с JQuery в «добавить» функция следующим образом:

$(target).append($("").add($("<div>")).add($("<span>"))) 

Рамка присоединяет эти вызовы для создания виртуального документа, прежде чем он добавляется к цели - это упрощенный пример кода ISN» t буквально то, что я делаю. Причина добавления первого $ ("") заключается в том, что фреймворк начинается с создания пустого выбора jQuery, а затем добавляет к нему материал. Суб-документы рекурсивно создаются и добавляются к родительским элементам.

Это прекрасно работает для конкатенации элементов вместе, но что, если я хочу объединить текст? Скажем, я хочу иметь что-то вроде этого: оказывается

<div></div> Outside the box! 

Я не могу просто $("<div>").add("Outside the box!") Кроме того, $.after() не похоже на работу, если <div> не уже на DOM.

Поддерживается ли эта функция jQuery? Если нет, есть ли способы обхода?

+0

@ Амадан К сожалению, предполагаемый дубликат предназначен для совершенно другой проблемы. Кроме того, текст, конкатенированный с div, будет из будущих пользователей инфраструктуры и может содержать разметку, которую я не хочу скрывать. Спасибо за предложение. – JSideris

ответ

1

Да, вы можете использовать простую конкатенацию с текущей HTML элемента: $('<div>').html($('<div>').html() + 'Outside the box!')


С вашего кодом DOM является в памяти и не фактический HTML, вы должны использовать код из нескольких строк:

var $div = $('<div>', {html: $('<div>')}); 
$div.html($div.html() + "Outside the box!"); 
+0

Хорошо, это работает. В принципе, создайте временный родительский div, чтобы содержать так называемые виртуальные поддокументы. Поскольку я не хочу держать внешний div, как мне скопировать все данные из него и в его конечный пункт назначения, как только это место назначения известно? Когда я делаю '$ div.children()', он не выбирает текст после внутреннего div. – JSideris

+0

Ничего, я тупой. '$ Div.htm();'. благодаря – JSideris

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