大家好,我是初学者,自己写了一段js代码。用于实现在钩选checkbox时,切换本周和下周的日期。
我在ie下运行正常,但是在firefox下,却无法显示。请指教!!!急!
function $InnerHTML(obj,txt){
document.getElementById(obj).innerHTML="<font color=red>"+txt+"</font>";
}

var date14 = new Array(14);
var dd = new Date();
function autoGen(d,cur,last)
{
date14[d-1] = dd.getMonth()+1 + "-" + dd.getDate();
for(var i=0; i<d-1; i++)
{
if (dd.getDate()-(i+1) <= 0) date14[d-i-2] = dd.getMonth()+"-"+(last-i); else date14[d-i-2] = dd.getMonth()+1 + "-" + (dd.getDate()-i-1);
}

for(var i=0; i<14-d; i++)
{
if (dd.getDate()+i+1 > cur) date14[d+i] = dd.getMonth()+2+"-"+(i+1); else date14[d+i] = dd.getMonth()+1 + "-" + (dd.getDate()+i+1);
}
}

function genDate()
{
var mon = new Array(12);
mon[0]=31;mon[2]=31;mon[3]=30;mon[4]=31;mon[5]=30;mon[6]=31;mon[7]=31;mon[8]=30;mon[9]=31;mon[10]=30;mon[11]=31;
var yyyy = dd.getFullYear();
if ((yyyy%4==0&&yyyy%100!=0) || yyyy%400 == 0) mon[1]=29; else mon[1]=28;

var cur = dd.getDay();
var curMDay = mon[dd.getMonth()];
var lastMDay = mon[dd.getMonth()-1];
switch (cur){
case 0:
autoGen(7,curMDay,lastMDay);
break;
case 1:
autoGen(1,curMDay,lastMDay);
break;
case 2:
autoGen(2,curMDay,lastMDay);
break;
case 3:
autoGen(3,curMDay,lastMDay);
break;
case 4:
autoGen(4,curMDay,lastMDay);
break;
case 5:
autoGen(5,curMDay,lastMDay);
break;
case 6:
autoGen(6,curMDay,lastMDay);
break;
}
}
function funTr()
{
if (date14[0]==null)
genDate(); var txt = "";
var d = new Date();
var day = d.getDay(); if (document.getElementById("nextweek").checked==true)
{
$InnerHTML("MON",date14[7]);
$InnerHTML("TUE",date14[8]);
$InnerHTML("WED",date14[9]);
$InnerHTML("THU",date14[10]);
$InnerHTML("FRI",date14[11]);
$InnerHTML("SAT",date14[12]);
}
else
{
$InnerHTML("MON",date14[0]);
$InnerHTML("TUE",date14[1]);
$InnerHTML("WED",date14[2]);
$InnerHTML("THU",date14[3]);
$InnerHTML("FRI",date14[4]);
$InnerHTML("SAT",date14[5]);
}
}

解决方案 »

  1.   


    firebug貌似没有提示错误啊~~
      

  2.   

    JAVASCRIPT可以使用美元符号,这个是允许的变量名称!
      

  3.   

        function函数部分好象没有什么问题,估计你的效果是在标签对象上绑定函数的时候出问题了。能看看你的HTML或绑定函数的语句吗?
      

  4.   

    你好,我是jsp的页面,html部分在这里,请指教。IE下是可以的,ff就不行了。
    我是用超链接调用的:<a class="choice" href="" onClick="window.open('newbook.jsp','_blank','scrollbars=0,resizable=0,status=no,height=400,width=820');return false;">XXX</a>
    不过现在还发现很奇怪的现象,部署到tomcat后,这个页面和实际不一样。实在没经验啊,呵呵<html>
    <body onLoad="funTr();">
    <input name="nextweek" id="nextweek" type="checkbox" value=1 onClick="javascript:funTr();">Next Week<TABLE cellSpacing=0 cellPadding=0 border=1>
      <TBODY>
      <TR>
        <TD vAlign=top width=71>&nbsp;</TD>
        <TD vAlign=top width=120><STRONG><SPAN id="Mon"></SPAN></STRONG></TD>
        <TD vAlign=top width=120><STRONG><SPAN id="TUE"></SPAN></STRONG></TD>
        <TD vAlign=top width=120><STRONG><SPAN id="WED"></SPAN></STRONG></TD>
        <TD vAlign=top width=120><STRONG><SPAN id="THU"></SPAN></STRONG></TD>
        <TD vAlign=top width=120><STRONG><SPAN id="FRI"></SPAN></STRONG></TD>
        <TD vAlign=top width=120><STRONG><SPAN id="SAT"></SPAN></STRONG></TD>
        </TR>
     
    </TBODY></TABLE></body>
    </html>
      

  5.   

    真是没人气啊
    加问一个问题,为什么我修改的jsp以及相应的js时,在部署完访问的时候,无法及时体现出来呢?
    我清过缓存了,页面的源文件,是未修改的版本....
      

  6.   

    如果你确定就是这个table的话,那么我只能和你说
    <TABLE cellSpacing=0 cellPadding=0 border=1>
      <TBODY>
      <TR>
      <TD vAlign=top width=71>&nbsp;</TD>
      <TD vAlign=top width=120><STRONG><SPAN id="Mon"></SPAN></STRONG></TD>
      <TD vAlign=top width=120><STRONG><SPAN id="TUE"></SPAN></STRONG></TD>
      <TD vAlign=top width=120><STRONG><SPAN id="WED"></SPAN></STRONG></TD>
      <TD vAlign=top width=120><STRONG><SPAN id="THU"></SPAN></STRONG></TD>
      <TD vAlign=top width=120><STRONG><SPAN id="FRI"></SPAN></STRONG></TD>
      <TD vAlign=top width=120><STRONG><SPAN id="SAT"></SPAN></STRONG></TD>
      </TR>
     
    </TBODY></TABLE>是上面的id(红色部分)造成的ie中getElementById()不区分大小写(也可以说ie的元素id大小写相同),而ff则是区分大小写的
    <html>
    <body>
    <input id='a' />
    <input id="A" />
    <script type="text/javascript">alert(document.getElementById('A') == document.getElementById('a'));
    </script></body>
    </html>
      

  7.   

    有时会有这个问题,换成还有清干净。
    这时你可以把tab页关闭,重新打开刚才那个tab页,试一下。
    如果还是不行,你把ie关了,然后重启ie,在打开那个jsp。
    应该就好了。