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

是否可以使用变量缩短此代码?

4

5 回答 5

3

你可以像这样缩短它:

var a = this.firstChild.style;
a.display = (a.display=='none'?'block':'none');
于 2012-05-19T08:15:15.027 回答
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';
于 2012-05-19T08:14:13.307 回答
1

如果你选择 jquery 比它更短

$("div span:first-child").toggle();

或者

$(this).find(">:first-child").toggle();
于 2012-05-19T08:16:08.760 回答
1

顺便说一句,这可以是另一种选择吗?

with this.firstChild.style.display{this=(this=='none')?'block':'none';}
于 2012-05-19T08:22:24.840 回答
0

尝试:

var elstyle = this.firstChild.style;
elstyle.display = /block/i.test(elstyle.display) ? 'none' : 'block'
于 2012-05-19T08:21:13.563 回答