2014-12-07 2 views
-1

해당 ID를 사용하여 div의 색상을 변경하려고합니다.
문자열은 작동하지만 16 진수 값이 작동하지 않습니다.div의 색상 변경 - ID 사용

작업은 : -

var div = document.getElementById('1'); 
div.style.backgroundColor = 'red'; 

작동하지 않습니다 : -

var div = document.getElementById('1'); 
div.style.backgroundColor = #3e4046; 
div.style.backgroundColor = 0x3e4046; 

어떻게 16 진수 값을 사용하여 사업부의 색상을 변경?

+1

** Console ** (F12)를 사용하는 경우이 상황에서이 질문을하지 않게됩니다! :) 그걸 써! –

+0

숫자를 ID로 사용하지 않는 것이 좋습니다. –

+0

@torazaburo ID로 숫자를 사용하지 않는 것이 좋지만 HTML5에서는 허용됩니다. –

답변

1

모든 CSS 값과 마찬가지로 16 진수 값은 문자열이어야합니다.

div.style.backgroundColor = '#3e4046'; 

CSS 속성에 문자열이 아닌 값을 제공하면 문자열로 변환됩니다. 예를 들어, 문자열에 캐스트 할 때 0x3e4046은 유효한 CSS 색상이 아닌 '4079686'과 같습니다. #3e4046의 경우 실제로 #3e4046이 (가) 유효한 JavaScript가 아니므로 구문 오류가 발생했습니다.

+0

@downvoter : 문제가 있습니까? –

+0

'div.style.lineHeight = 2'가 정상적으로 작동합니다. 이 문제에 대해 솔직히 말하면, 스타일 속성을 숫자로 설정하는 것은 문제가 아니지만 값은 해당 속성에 대해 수용 가능해야합니다. 따라서 "모든 CSS 값 ... 문자열이어야합니다."(내부적으로 문자열이 될 수도 있지만) 문제가 아닙니다. 이 경우 문제는 'backgroundColor'가 숫자 값을 취하지 않는다는 것입니다. –

+1

@torazaburo 기술적으로는 '2'가 자동으로 문자열 '2'로 캐스팅되기 때문에 기술적으로는 효과가 있지만 공정한 점입니다. 나는 이것을 메모 할 것이다. –