2016-06-28 3 views
0

td (표 셀)을 사용하고 빨간색 테두리 스타일을 지정하거나 해제하는 간단한 JavaScript 함수를 작성했습니다. 코드는 다음과 같습니다.JavaScript에서 변수에 CSS 스타일 지정하기

function doStuff(theCell) 
{ 
    var highlight = "2px solid rgb(255, 0, 0)"; 
    if(borderStyle==highlight) 
    { 
     theCell.style.border=""; 
    } 
    else 
    { 
     theCell.style.border=highlight; 
    } 
} 

이 작동합니다. 그러나 나는 변수에 의해 CSS의 테두리 스타일을 대체하려고 코드 청소기를 만들려고 노력 (단지 첫 번째 이하 선언) : 나는 평등 비교에서 사용할 때

var borderStyle = theCell.style.border; 

이 확인을 작동하지만,하지 않을 때 나는 이것을 'else'절의 스타일 지정에 넣었습니다.

나는 아주 어리석은 짓을 시도해야합니다. 아무도 설명 할 수 있겠는가.

+0

함수에서 borderStyle을 어디에 정의 했습니까? – hakJav

+0

'theCell.style.border'는'string'을 반환하고, 나중에'else' 블록에 문자열을 업데이트하고 요소에 다시 할당하지 않습니다. – Rayon

+2

* 나는 아주 어리석은 짓을하려고 노력해야합니다. borderStyle에 할당하면 * 참조를 할당한다고 가정하고 borderStyle에 대한 변경은 theCell.style.border에 영향을 미친다. 이 가정은 거짓입니다. –

답변

2

var borderStyle = theCell.style.border;과 같은 코드를 작성하면 Javascript가 개체에 대한 참조를 생성하지 않습니다. borderStyle에는 border의 값만 복사됩니다. theCell 인 물체는 그 자리에 무사 히 남아있었습니다. 참조가 작성되지 않았습니다.

+1

감사의 말씀을 전한 분들께도 감사드립니다. 내 표정이 내 표 셀의 경계만큼 빨갛다. – David

관련 문제