eval('oRow.cells[1].style.'+strAttribute)
Никогда не используйте eval
, как это (*).В JavaScript вы можете получить доступ к свойству, имя которого хранится в строке в квадратных скобках.object.plop
- это то же самое, что и object['plop']
:
to.style[name]= from.style[name];
(*: никогда не используйте eval
, если вы можете помочь. Есть только несколько очень специфических и редких случаев, когда вам это нужно.)
Есть ли способ зацикливания элементов стиля
Предполагается, что объект style
поддерживает CSS CSSStyleDeclaration
DOM уровня 2 *1017* интерфейс.Вы можете зациклить правила и применить их к другому элементу, как это:
for (var i= from.style.length; i-->0;) {
var name= from.style[i];
to.style.setProperty(name,
from.style.getPropertyValue(name),
priority= from.style.getPropertyPriority(name)
);
}
в IE?
Нет, IE не поддерживает весь интерфейс CSSStyleDeclaration ивыше не будет работать.Однако есть более простой способ, не включающий зацикливание: будет работать на IE и других браузерах:
to.style.cssText= from.style.cssText;
Так просто!IE не совсем сохраняет текст CSS так, как должен, но различие не имеет значения для простого копирования в стиле inline.
Однако, как сказал Пикрасс (+1), если вы копируете целый элементи не только стили, cloneNode
- безусловно, самый элегантный способ сделать это.