.hide (), .show (), таблицы и IE - PullRequest
       21

.hide (), .show (), таблицы и IE

4 голосов
/ 11 октября 2008

У меня есть несколько вложенных таблиц, которые я хочу скрыть / показать при нажатии на одну из строк верхнего уровня.

Разметка, в двух словах, это:

  <table>
    <tr>
      <td>stuff</td>
      .... more tds here
    </tr>
    <tr>
      <td colspan=some_number>
        <table>
        </table>
      </td>
    </tr>
  </table>

Теперь я использую jQuery для нацеливания на ссылку в первой строке таблицы. При щелчке по этой ссылке она сбрасывает некоторые данные, форматирует их в виде ряда строк таблицы и добавляет их в таблицу внутри. Затем он применяет .show () к таблице. (все это делается с помощью таргетинга на идентификаторы / классы. Я для краткости оставил их вне выборки).

Это прекрасно работает в Firefox. Нажмите на ссылку, данные загрузятся, основная таблица «развернется» с дополнительной таблицей, все будет красиво и заполнено.

Проблема в том, что Internet Explorer показывает мне палец. Насколько я могу судить, данные добавляются во внутреннюю таблицу. Проблема в том, что .show (), похоже, не делает ничего полезного. Чтобы сделать вещи более раздражающими, у меня есть страница с этой функциональностью, которая прекрасно работает в обоих случаях, единственное отличие состоит в двух вещах:

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

Я попытался прикрепить .show к родительскому tr, parent td и самой таблице, но безуспешно. Я, должно быть, упускаю что-то невероятно простое, потому что, насколько я могу судить, это должно сработать.

Кто-нибудь сталкивался с чем-то подобным раньше?

Ответы [ 2 ]

6 голосов
/ 11 октября 2008

Имейте в виду, что innerHTML элемента

1 голос
/ 11 октября 2008

В IE есть множество ошибок, связанных с изменением содержимого таблиц из Javascript. Во многих случаях IE (включая IE7) даже аварийно завершает работу.

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


ОК, я нашел случай, с которым столкнулся.

Я делал что-то подобное. У меня была таблица, и я пытался добавить тег <td> со ссылкой в ​​нем через Javascript, что вызывало исключение памяти в IE7.

В конце концов, единственный способ обойти это - перестроить весь <table> в Javascript, а не пытаться вставить что-то в существующий.

Для пояснения, под перестройкой я подразумеваю создание строки, связывающей таблицу HTML, и добавление ее к innerHTML элемента div. Я не использую функции DOM для создания таблицы.

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