Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.04.2010, 15:51
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

Новые правила для width
Уже какой раз замечаю в новых браузерах. Не выходит такое
<script>
function divWidth()
{
alert(testDiv.width);
}
</script>
<button onclick="divWidth()">Нажать</button>
<div id='testDiv' width='20px'>

</div>


Хотя раньше это работало.

В тоже время
<script>
function divWidth()
{
alert(testDiv.style.width);
}
</script>
<button onclick="divWidth()">Нажать</button>
<div id='testDiv' style="width:20;">

</div>


У меня в браузере в первом случае выводит undefined,
во втором 20px
Ответить с цитированием
  #2 (permalink)  
Старый 19.04.2010, 15:56
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

<script>
function divWidth()
{
alert(testDiv.clientWidth + '\n' + testDiv.getAttribute('width'));
}
</script>
<button onclick="divWidth()">Нажать</button>
<div id='testDiv' width='20px'>

</div>
Не надо путать атрибуты и свойства.
Ответить с цитированием
  #3 (permalink)  
Старый 19.04.2010, 15:57
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Нет свойства width, есть offsetWidth.
Ответить с цитированием
  #4 (permalink)  
Старый 19.04.2010, 15:58
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

Вот это да, а разве clientWidth должен работать в этом случае?

И дело ж ведь в том что надо вывести именно то значение которое указано в width т.е. в данном случае 20. А у меня в вашем случае выводит 870
Ответить с цитированием
  #5 (permalink)  
Старый 19.04.2010, 16:01
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

свойство width есть я его активно использую в canvas он там что интересно только в таком варианте и работает
<canvas height=200 width=200 ></canvas>

А если ему задать через стиль то нарисованное изображение будет удлиняться то ли по ширине то ли по высоте на 1.5 раза.
Ответить с цитированием
  #6 (permalink)  
Старый 19.04.2010, 16:13
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от mycoding
свойство width есть я его активно использую в canvas
А ничего, что div и canvas это разные теги?
Ответить с цитированием
  #7 (permalink)  
Старый 19.04.2010, 16:14
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

У div, как видите, нет.
Ответить с цитированием
  #8 (permalink)  
Старый 19.04.2010, 16:14
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

А что такого это свойство должно быть у всех, тем более я раньше так делал для всех вроде.
Ответить с цитированием
  #9 (permalink)  
Старый 19.04.2010, 16:15
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от mycoding
это свойство должно быть у всех
C какой это радости?

У всех элементов должны быть только несколько свойств: id, className, style, title. Остальные зависят от тега.

Последний раз редактировалось B@rmaley.e><e, 19.04.2010 в 16:17.
Ответить с цитированием
  #10 (permalink)  
Старый 19.04.2010, 16:17
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 09.07.2008
Сообщений: 3,873

Не путай свойства и атрибуты.
testDiv.width // свойство объекта - любое значение
testDiv.getAttribute("width") // атрибут DOM-элемента - всегда строка

В HTML не все элементы имеют атрибут width (это не значит, что его нельзя задать самостоятельно), а для таких элементов, как Canvas браузер синхронизирует значения свойства и атрибута. В IE модель упрощена.
http://xpoint.ru/know-how/JavaScript/Atributyi

Ну и есть еще способ достать значение атрибута:
testDiv.attributes.width.value

Последний раз редактировалось Octane, 19.04.2010 в 16:21.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Узнать width = % -->> width = ?px для таблицы vah-smile Элементы интерфейса 7 04.11.2009 00:04
IE: правила для блокировки опасного содержимого serjOut Internet Explorer 1 30.10.2009 01:00
свойства width и height в IE.... alex.v Internet Explorer 18 29.09.2009 11:03
сделайте правила для форума scuter Сайт Javascript.ru 29 21.04.2009 16:28