2012-05-19 5 views

답변

3

처럼 삼항 연산자 사용에 단축 할 수 당신은 이런 식으로 단축 할 수 있습니다

var a = this.firstChild.style; 
a.display = (a.display=='none'?'block':'none'); 
+0

그러면 변수 'a'에 문자열'block '이 할당되고 요소의 속성'display '에는 할당되지 않습니다. – KooiInc

+0

@KooiInc 네, 맞았어요. 내 코드를 편집했습니다. – Teneff

2
var childStyle=this.firstChild.style; 
if (childStyle.display == 'none'){ 
    childStyle.display = 'block'; 
} 
else{ 
    childStyle.display = 'none'; 
} 

은 이에 상응하는 것입니다.

당신은 더

var childStyle=this.firstChild.style; 
childStyle.display=(childStyle.display=='none')?'block':'none'; 
+0

는 – KooiInc

+0

아, 내가 그렇게하려고하지 않았다. – Niranjan

1

을이

$("div span:first-child").toggle(); 
보다 단축 그것보다 JQuery와 갈 경우

또는

$(this).find(">:first-child").toggle(); 
+1

> 60KB 이상의 자바 스크립트가 추가됩니다. 파일. : D. – Niranjan

+0

jQuery는 거의 항상가는 길입니다. –

+0

예, 동의합니다. :-). – Niranjan

0

시도 :

그런데
var elstyle = this.firstChild.style; 
elstyle.display = /block/i.test(elstyle.display) ? 'none' : 'block' 
+1

오, 안돼. 너는 그것을 복잡하게 만들었다. : D – Niranjan

+0

그것에 대해 복잡한 점은 무엇입니까? OP 질문 : 변수를 사용하여이 코드를 단축 할 수 있습니까? 이것은 답변입니다. – KooiInc

+0

적어도 삼항을 교체하고 양성 반응을 보임 – mplungjan

1

이 또 다른 대안이 될 수 있는가? , 그리고 요소의 display``재산에 변수`childStyle`에 문자열 '블록'을 지정합니다

with this.firstChild.style.display{this=(this=='none')?'block':'none';} 
+0

_with_를 사용하지 않는 것이 좋습니다 – mplungjan

관련 문제