JS选项卡的问题 急

以下代码放在一个.net的用户控件中,当点击选项卡中的链接跳转后记住跳转前选中的选项卡

为什么 var menu = document.getElementById('one' + s)这句代码的 menu对象取不到值为空呢?

 

<script>
    function setTab(name, cursel, n) {
        for (var i = 0; i < n; i++) {
            var menu = document.getElementById(name + i);
            var con = document.getElementById("con_" + name + "_" + i);
            menu.className = i == cursel ? "hover" : "";
            con.style.display = i == cursel ? "block" : "none";
        }
    }
    function getQueryString(key) {
        var value = "";

        var sURL = window.document.URL;

        if (sURL.indexOf("?") > 0) {
            var arrayParams = sURL.split("?");

            var arrayURLParams = arrayParams[1].split("&");

            for (var i = 0; i < arrayURLParams.length; i++) {
                var sParam = arrayURLParams[i].split("=");

                if ((sParam[0] == key) && (sParam[1] != "")) {
                    value = sParam[1];
                    break;
                }
            }
        }
        return value;
    }

    var s = getQueryString('sel');
    if (s != null) {
        var menu = document.getElementById('one' + s);
        var con = document.getElementById("con_" + 'one' + "_" + s);
        menu.className = s == s ? "hover" : "";
        con.style.display = s == s ? "block" : "none";
    }
</script>
<div id="TabbedPanels1" class="TabbedPanels">
    <div id="Tab1">
        <div class="Menubox">
            <ul>
                <li id="one0" onclick="setTab('one',0,3)" class="hover">AA</li>
                <li id="one1" onclick="setTab('one',1,3)">BB</li>
                <li id="one2" onclick="setTab('one',2,3)">CC</li>
            </ul>
        </div>
        <div class="Contentbox">
            <div id="con_one_0" class="hover">
                AAAAAAAAAAAAAAA
            </div>
            <div id="con_one_1" style="display: none">
                <a href="SalesReport.aspx?sel=2">啊啊啊 </a>
                <br />
                <a href="SalesReport.aspx?sel=1">是是是 </a>
                <br />
                <a href="SalesReport.aspx?sel=1">大大大 </a>            </div>
            <div id="con_one_2" style="display: none">
                CCCCCCCCCCCCCCC
            </div>
        </div>
    </div>
</div>

PIPIONE
浏览 509回答 4
4回答

qq_遁去的一_1

我补充下上面的回答,上面说了返回为"",而你做的判断代码 if (s != null)看似是对的,但是实际上这里是有问题的,简单的你可以做个测试,让s="";然后在运行if(s!=null)看下结果,结果会让你非常的惊奇,因为竟然这个判断返回的是true.... 你这里做判断的时候应该是if(s!=null && s!="")

红颜莎娜

很明显如果 sURL.indexOf("?") > 0 将会返回"",自然document.getElementById('one' + s),找不到对象!!,再改进一下你的程序

哔哔one

但是我在后面判断了是否为空啊 var s = getQueryString('sel'); if (s != null) {}当部位空的时候才调用那个方法的

慕哥6287543

@凭栏处: ""和null是两个意思
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript