Как сделать несколько .setAttribute на один элемент - PullRequest
2 голосов
/ 25 ноября 2010

мой код

elem.setAttribute( 'style','background-color:' + l_DivBgcolor);

, и я также хочу добавить цвет границы, аналогичный цвету bgcolor .. моя проблема заключается в том, как добавить другой стиль в текущий стиль после установки bgcolor?

i trien, помещая

elem.setAttribute( 'style','border-color:' + l_DivBgcolor  );

после первого атрибута setAttribute, но он удаляет bgcolor и устанавливает только цвет границы ..

Ответы [ 7 ]

6 голосов
/ 25 ноября 2010

Не используйте атрибут для этого.Атрибуты неправильно реализованы в IE и почти никогда не являются тем, что вам нужно.Кроме того, присвоение атрибуту style уничтожит существующие встроенные стили, в том числе установленные скриптом.Вместо этого используйте универсально поддерживаемое свойство style:

elem.style.backgroundColor = l_DivBgcolor;
elem.style.borderColor = l_DivBgcolor;
1 голос
/ 25 ноября 2010

Вы можете добавить (+ =) или заменить (=) правила встроенного стиля на style.cssText.

При добавлении любые свойства, существующие в исходном стиле, заменяются новыми значениями.Новые свойства добавляются, а любые в оригинале, но не в замене остаются без изменений.

elem.style.cssText+=';background-color:'+ l_DivBgcolor+';border-color:'+l_DivBgcolor;
1 голос
/ 25 ноября 2010

Может быть сделано с:

elem.setAttribute( 'style','border-color:' + l_DivBgcolor + '; background-color:' + l_DivBgcolor + ';');

Или вы можете попробовать:

elem.style.display.borderColor = lDivBgcolor;
elem.style.display.backgroundColor = lDivBgcolor;
0 голосов
/ 19 апреля 2017

Переменные и жесткие значения кода:

element.setAttribute( 'style','top:' + t + '; left:' + l + '; width:' + w + '; height:' + h + ';');
element.setAttribute( 'style','top: 0; left: 0 ; right: 0; bottom: 0; opacity: 0.7;');
0 голосов
/ 12 ноября 2013

Используйте это

elem.setAttribute( 'style','background-color:' + l_DivBgcolor+ ' border-color:' + l_DivBgcolor);
0 голосов
/ 25 ноября 2010

Поскольку вы изменяете атрибут стиля, а не свойства стиля элемента напрямую, вы можете объединить стили в строку

var atValue = 'border-color:' + l_DivBgcolor + ';';
atValue += 'background-color:' + l_DivBgcolor + ';';

elem.setAttribute( 'style', atValue );
0 голосов
/ 25 ноября 2010

Просто объедините их:

elem.setAttribute( 'style','background-color:' + l_DivBgcolor + ';border-color:' + l_DivBgcolor + ';');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...