这是在这个函数中表达没有价值的正确方法吗?

时间:2015-09-16 19:14:48

标签: javascript jquery

我手风琴已设置为通过将此字符串附加到网址?panel=0

来打开特定面板
farfegnugen = jQuery.noConflict();

        farfegnugen(document).ready(function($) {
            var defaultPanel = parseInt(getParam('panel'));
           farfegnugen("#st-accordion").accordion({
                open: defaultPanel
            });

            function getParam(name) {
                var query = location.search.substring(1);
                if (query.length) {
                    var parts = query.split('&');
                    for (var i = 0; i < parts.length; i++) {
                        var pos = parts[i].indexOf('=');
                        if (parts[i].substring(0, pos) == name) {
                            return parts[i].substring(pos + 1);
                        }
                    }
                } else if(query.length === undefined){
                    window.location.href = "#topOfPage";
                }
                return false;
            }
        });

然而,我注意到它虽然没有选择特定的面板,但在负载时略微滚动到手风琴的主体上。为了解决这个问题,我想添加这个else if块会检查参数是否为空,如果是,我们会强制窗口滚动anchor所在的位置。

<a id="topOfPage" href='#'></a>

所以不会else if(query.length === undefined)工作,因为你什么也没说,是吗? 附:我也试过null,但这没效果!

1 个答案:

答案 0 :(得分:0)

尝试在控制台中运行location.search.substring(1).length,您将看到问题所在。它等于0,而不是undefined。在您的情况下,您不需要else if,您只需使用else