以下代码放在一个.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>
4 回答
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
我补充下上面的回答,上面说了返回为"",而你做的判断代码 if (s != null)看似是对的,但是实际上这里是有问题的,简单的你可以做个测试,让s="";然后在运行if(s!=null)看下结果,结果会让你非常的惊奇,因为竟然这个判断返回的是true....
你这里做判断的时候应该是if(s!=null && s!="")
红颜莎娜
TA贡献1842条经验 获得超12个赞
很明显如果 sURL.indexOf("?") > 0 将会返回"",自然document.getElementById('one' + s),找不到对象!!,再改进一下你的程序
哔哔one
TA贡献1854条经验 获得超8个赞
但是我在后面判断了是否为空啊 var s = getQueryString('sel');
if (s != null) {}当部位空的时候才调用那个方法的
添加回答
举报
0/150
提交
取消