2010-11-25 3 views
2

мой кодКак сделать несколько .setAttribute на одном элементе

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

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

я триен положить

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

после первого SetAttribute но удаляет BGCOLOR анг установить только цвет границы ..

ответ

6

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

elem.style.backgroundColor = l_DivBgcolor; 
elem.style.borderColor = l_DivBgcolor; 
1

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

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

Или вы могли бы попробуйте:

elem.style.display.borderColor = lDivBgcolor; 
elem.style.display.backgroundColor = lDivBgcolor; 
+1

Первый подход не будет работать в IE 6 или 7, или 8 в режиме совместимости, а также будет уничтожить существующие стили линий в других браузерах. Второй подход - единственный разумный способ сделать это, за исключением того, что вы ошибаетесь, вставив `display.`. – 2010-11-25 16:20:09

+0

* nods * Я не предлагаю, чтобы это было так, чтобы использовать встроенный стиль, просто беря исходный код и настраивая его, чтобы соответствовать заданному вопросу, но вы совершенно правы, это не способ сделать это. Последний ... ну, прошло немного времени с тех пор, как я это сделал, и по какой-то причине я думал, что для этого нужен родительский дисплей. Не знаю, почему. – Arantor 2010-11-25 16:46:08

-1

Просто сцепить их:

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

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

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

elem.setAttribute('style', atValue); 
1

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

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

elem.style.cssText+=';background-color:'+ l_DivBgcolor+';border-color:'+l_DivBgcolor; 
0

использовать этот

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

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

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;'); 
Смежные вопросы