缩短if,否则if,否则if ... else使用循环

-1 javascript jquery loops if-statement

我有以下几行代码:

$(function(){
$("div").scroll(function() {
    function hpos(id) {
        var pos = $("#" + id).position();
        return pos.top;
    }
    function final(id) {
        $("#header").html($("#" + id).html()),
        $("h1").css("visibility","visible"),
        $("#" + id).css("visibility","hidden");
    }
    if (hpos(5) < 0) {
        final(5);
    }
    else if (hpos(4) < 0) {
        final(4);
    }
    else if (hpos(3) < 0) {
        final(3);
    }
    else if (hpos(2) < 0) {
        final(2);
    }
    else {
        final(1);
    }
});
Run Code Online (Sandbox Code Playgroud)

});

我不应该通过使用循环而不是else if语句来缩短它吗?我找不到一种方法来使循环与我的position()一起工作.

aus*_*nli 5

for (var i = 5; i > 0; i--){
    if (hpos(i) < 0) {
        final(i);
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

会不会像这样的工作?没有经过测试