这是在这个函数中表示无值的正确方法吗?

Is this the correct way to express no value in this function?

本文关键字:方法 函数 表示      更新时间:2023-09-26

我有一个手风琴,它已经设置为打开到一个特定的面板通过附加这个字符串到URL ?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)不能工作,因为你什么也没说,是吗?P.S.我也试过null,但没有成功!

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