jQuery table.wrap() вызывает проблемы с компоновкой

#jquery #css-tables

#jquery #css-таблицы

Вопрос:

Я опубликую более подробный фрагмент кода позже (сейчас у меня нет доступа к VPN), но есть ли что-нибудь обычное, что может вызвать странные проблемы с компоновкой в приведенном ниже случае:

 <body>
    <div>...</div>
    <div>...</div>
    <div>...</div>
    <table id="container">...</table>
</body>
  

Верхний уровень <div> — это float: left; width: 100%

Когда я пытаюсь обернуть таблицу с помощью:

 $('table#container').wrap('<div id="body_content"></div>');
  

Содержимое первого <div> перепутывается (кажется, дублирует строку меню, которая у меня там есть).

ОБНОВЛЕНИЕ Только что нашел <script> теги, подобные следующим, вложенным внутри таблицы, когда я удаляю их перед переносом таблицы, проблема исчезает. Любое понимание этого было бы оценено.

 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
  

Комментарии:

1. Я думаю, нам нужно увидеть немного больше HTML и CSS, связанных с идентификатором body_content . И не могли бы вы подробнее рассказать о запутанном , пожалуйста?

2. Да, я опубликую весь пример сегодня вечером, я просто надеялся, что у кого-то был подобный опыт, которым они могут поделиться. Как я упоминал, строка меню в первом div (меню состоит из нескольких вложенных разделов), похоже, дублируется, поэтому я вижу меню дважды, и оно обтекает и закрывает часть следующего div.

3. И DOM для этого div вообще не меняется, волшебным образом появляется меню «extra», когда я оборачиваю таблицу.

4. странно, я с нетерпением жду вашего кода сегодня вечером и посмотрю, смогу ли я помочь в это время.

5. Пытаясь очистить HTML и сделать его пригодным для публикации, я думаю, что нашел причину проблемы (хотя я не уверен, почему это имеет такой эффект). В table то, что я оборачиваю, вложены script теги (т. Е. Загрузка jquery), поэтому, когда я удалил их перед вызовом, wrap проблема исчезла. Если у вас есть какие-либо мысли о том, почему это происходит, я буду рад пометить это как правильный ответ.

Ответ №1:

Похоже, проблема была во вложенных <script> тегах, в частности, во вложенном теге, который загружал jQuery. Удаление тегов скрипта перед вызовом wrap() , похоже, устраняет проблему.