我正在尝试简化以下条件语句。有没有更好的方法来做到这一点?感谢。
if ($element.is('#resize')) {
css.left =+ 20;
css.top =+ 3;
if ($('#holder .Main').length < 5 ) {
img.css('display', 'none');
}
img.insertBefore($element);
img.css(css);
} else if($element.is('#bt_id3')) {
css.left =+ 20;
css.top =+ 3;
if ($('#id .Main').length < 5 ) {
img.css('display', 'none');
}
img.insertBefore($element);
img.css(css);
}
答案 0 :(得分:2)
if
和else
子句之间唯一不同的是内部if
中的选择器。你可以这样隔离:
var eltId = false;
if ($element.is('#resize')) eltId = '#holder';
if ($element.is('#bt_id3')) eltId = '#id';
if( eltId !== false ) {
css.left=+20;
css.top=+3;
if($(eltId + ' .Main').length<5){img.css('display', 'none');}
img.insertBefore($element);
img.css(css);
}
这让它变得有点干。
答案 1 :(得分:1)
if($element.is('#resize') || $element.is('#bt_id3')){
var elem = $element.is('#resize') ? $('#holder .Main') : $('#id .Main');
css.left=+20;
css.top=+3;
if(elem.length<5){img.hide();} // USE HERE THE 'elem' VARIABLE and '.hide()'
img.insertBefore($element);
img.css(css);
}
答案 2 :(得分:1)
这不会改变任何工作,但它仍然不太漂亮。很多神奇的数字和缺乏评论和背景使得奇怪的代码......
var e = false;
if ($element.is('#resize')) e = $('#holder .Main');
else if ($element.is('#bt_id3')) e = $('#id .Main');
if (e) {
css.left=+20;
css.top=+3;
if (e.length<5) {
img.css('display', 'none');
}
img.insertBefore($element);
img.css(css);
}
答案 3 :(得分:-1)
快速反应因素产生:
css.left = +20;
css.top = +3;
if ($element.is('#resize')) {
if ($('#holder .Main').length < 5) {
img.css('display', 'none');
}
} else if ($element.is('#bt_id3')) {
if ($('#id .Main').length < 5) {
img.css('display', 'none');
}
}
img.insertBefore($element);
img.css(css);