jquery: вопрос о методе width () и изменении размера элементов td - PullRequest
0 голосов
/ 21 июня 2011

Я пытаюсь изменить размер <td> элементов, используя метод jquery .width().

По умолчанию, вот как выглядит один из элементов <td>:

<td> <!-- computed width = 105px -->

С помощью firebug, когда я, например, использую .width(171), я вижу, что стиль элемента изменяется:

<td style="171px;">  <!-- computed width = 148.767px -->

однако похоже, что jquery почему-то не хватает места для полного изменения размера элемента <td>.

Вопрос 1a: не следует ли автоматически увеличить ширину документа / таблицы для изменения размера элемента?

Вопрос 1b: есть ли способ принудительно изменить размер элементов <td>, чтобы новая вычисленная ширина соответствовала установленному значению?

Когда просматривал документацию для метода .width(), я увидел, что:
- .width() возвращает "текущую вычисленную ширину для первого элемента в наборе соответствующих элементов." - .width( value ) устанавливает "ширину CSS каждого элемента в наборе соответствующих элементов."

Вопрос 2: почему методы установки и получения являются несовместимыми, не следует ли .width( value ) напрямую изменять ширину DOM вместо изменения CSS-атрибута width?

1 Ответ

1 голос
/ 21 июня 2011

Question 2: why are the setter and the getter methods inconsistent, shouldn't .width( value ) modify the DOM width directly instead of modifying the CSS "width" attribute?

Это потому, что объект jQuery не знает, имеет ли элемент DOME, на котором он работает, атрибут width, определенный в W3.org. Не все DOMElements имеют атрибут width, но у всех есть свойство CSS width, которое можно установить. Поэтому, чтобы поддерживать стандарты, он устанавливает атрибут ширины в css, а не создает новый атрибут (нарушающий стандарты w3), который не существует для определенных элементов DOME.

...