Я написал код jQuery, который читает ширину столбцов в таблице и применяет их к другой таблице.Почему jQuery.css ('width') возвращает разные значения в разных браузерах?
На моей странице есть таблица вроде этого:
<table style='table-layout:fixed;'>
<tbody id='myTableBody'>
<tr>
<td style='width:100px;'>foo</td>
<td style='width: 40px;'>bar</td>
</tr>
</tbody>
</table>
Я написал следующий JQuery код для чтения свойства ширины CSS этой таблицы:
var colWidths = [];
var cells = $('#myTableBody').find('td');
for (i = 0; i < cells.length; i++)
colWidths.push($(cells[i]).css('width'));
После кода я бы ожидал, что colWidths
будет [100, 40]
, а в FireFox это так. Однако в IE8 это [92,32]
. Это нарушает мою страницу в IE, которая зависит от правильности значений.
Я считаю, что может быть уместно, что моя таблица содержится в элементе jQuery-ui-tabs, и я знаю, что jQuery-ui css может делать странные вещи, поэтому я не удивлюсь, если у этого есть что-то делать это.
Почему jQuery.css ('width') не возвращает значение, которое я ожидаю в IE8? Что я могу сделать с этим?
Я получаю 100 и 40 в IE8: http://jsfiddle.net/QhXjS/ –
Ваша страница действительный HTML 4,01 страница? Возможно, вы активировали [quirksmode] (http://www.quirksmode.org/css/quirksmode.html) в IE8. – Zeta
Спасибо, @Rob W. Я уверен, что на моей странице есть что-то, что как-то заставляет меня получить неправильное значение. –