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, время: 14:35. |