Используйте jquery, чтобы вставить только начальный или конечный тег

0

Я изучаю, что используя

replaceWith('<section>')

или

after('<section>')

Будет фактически вставлять полный элемент в каждом случае:

<section></section>

И это при использовании концевых тегов

replaceWith('</section>')

такие вызовы, похоже, игнорируются.

Есть ли способ отключить это поведение? Мне нужно в какой-то момент в DOM вставить начальный тег, а в другой точке вставить конечный тег.

wrapAll() 

Я тоже не могу работать. Я думаю, вероятно, что-то общее с тем, что обернуто, не все братья и сестры.....

  • 0
    wrapAll , вероятно, является правильным решением. Можете ли вы опубликовать jsfiddle, который демонстрирует вашу проблему?
  • 0
    Вот как работает DOM. Вот почему существуют методы wrap и wrapAll, прежде чем вызывать эти функции, убедитесь, что запрос возвращает ожидаемую коллекцию.
Показать ещё 1 комментарий
Теги:
dom-manipulation

1 ответ

0

Я не верю, что jquery позволит разрешить такое поведение, потому что это фактически позволит вам аннулировать вашу разметку.

имея дело с dom - он обрабатывает те группы меток как "узлы". они группируются как объекты с атрибутами и значениями, и многие другие объекты зависят от них. поэтому просто "перемещение текста" закрывающего тега не является желаемым эффектом...

почему бы не захватить все вещи, которые вы хотите в "середине" ваших половинных тегов... создать новый элемент, а затем поместить "заполнение" в него добавлением? что-то вроде этого:

var theFilling = $('ul#theFilling'),
    theCookieCrust = document.createElement('section');

$(theFilling).appendTo($(theCookieCrust));

$('ul#theFilling').remove();

$(theCookieCrust).appendTo('body');
  • 0
    Это то, что я в итоге сделал: jsfiddle.net/H36UE/1

Ещё вопросы

Сообщество Overcoder
Наверх
Меню