FINoM,
всё дело в том, что в функцию может попасть элемент из любого окна/фрейма и тогда реальный документ и объект окна нужно получать из элемента. |
Цитата:
|
devote, пардон, напомню другой вопрос: ты предлагаешь не использовать style вообще?
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
ну и славо Богу, короче style полная муйня, если в теге нет атрибута style то и в style будет пусто. ну или хрень не та
|
Первые тесты производительности (в хроме):
$('div').parents();jQuery работает в 3 раза медленнее. http://jsfiddle.net/finom/4hUAv/1/ $('*').closest('.colour');jQuery медленнее на ~15% http://jsfiddle.net/finom/4hUAv/2/ В самых простых случаях, сравнение немного непредсказуемо: $('*')jQuery на треть медленнее (почему?) $('div')jQuery на 5—10% быстрее (почему?) Это чисто для себя, чтоб убедиться, что дело делаю :D. В дальнейшем нужно будет сделать много много элементов (или взять какой-то уже готовый штмл) и потестить в почти реальных условиях. В .css все-таки всунул style. Не могу быть уверен, но мне кажется геттер style быстрее работает, чем колбаса из объектов и два метода: return first.style[prop] || first.ownerDocument.defaultView.getComputedStyle( first, null ).getPropertyValue( prop ); |
Цитата:
вот пример: <style> div { width: 200px; height: 200px; } </style> <div> </div> <script> var div = document.getElementsByTagName('div')[0]; alert([ div.style.width , div.style.height ]); // нет значений function style( elem ) { if ( elem.ownerDocument && elem.ownerDocument.defaultView ) { return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); } else if ( elem.currentStyle ) { return elem.currentStyle; } return null; } alert([ style(div).width , style(div).height ]); </script> |
Часовой пояс GMT +3, время: 13:37. |