0

ifステートメントのストリームを持つ関数があります。ステートメントがtrueの場合、innerHTMLを使用してドキュメントに書き戻します。innerHTML内にpタグとテキストを追加できますが、行を追加するとすぐに<a href>「UncaughtSyntaxError:Unexpectedidentifier」エラーが発生します。私は何が間違っているのですか?エラーはcalage()、次のスニペットを持つ関数内にあります。

if((calyear == 2010 && calmon > 10) || (calyear == 2011 && calmon < 11)) {
        console.log("They should be in the 2YO");
        document.getElementById("demo").innerHTML="<p>Your student would more than likely enter the 2YO class. The 2YO students will have class at the Nanshan campus. To apply, please fill out the following application.</p> <a href="http://qsishekou.org" target="_blank">QSI Shekou!</a>";
        }

完全なHTMLファイルは以下のとおりです。ご協力ありがとうございました!

    <!DOCTYPE HTML>

<html>
    <head> </head>
    <body>
<table cellpadding=0 cellspacing=0 style="width:95%;" align="center">
<tr><td align="center" class="abouttabletext"><br>
<script type="text/javascript">
var startyear = "1995";
var endyear = "2013";
var dat = new Date();
var curday = dat.getDate();
var curmon = dat.getMonth()+1;
var curyear = dat.getFullYear();
function checkleapyear(datea)
{
    if(datea.getYear()%4 == 0)
    {
        if(datea.getYear()% 10 != 0)
        {
            return true;
        }
        else
        {
            if(datea.getYear()% 400 == 0)
                return true;
            else
                return false;
        }
    }
return false;
}
function DaysInMonth(Y, M) {
    with (new Date(Y, M, 1, 12)) {
        setDate(0);
        return getDate();
    }
}
function datediff(date1, date2) {
    var y1 = date1.getFullYear(), m1 = date1.getMonth(), d1 = date1.getDate(),
     y2 = date2.getFullYear(), m2 = date2.getMonth(), d2 = date2.getDate();
    if (d1 < d2) {
        m1--;
        d1 += DaysInMonth(y2, m2);
    }
    if (m1 < m2) {
        y1--;
        m1 += 12;
    }
    return [y1 - y2, m1 - m2, d1 - d2];
}

function calage()
{
  var calday = document.birthday.day.options[document.birthday.day.selectedIndex].value;
  var calmon = document.birthday.month.options[document.birthday.month.selectedIndex].value;
  var calyear = document.birthday.year.options[document.birthday.year.selectedIndex].value;
    if(curday =="" || curmon=="" || curyear=="" || calday=="" || calmon=="" || calyear=="")
    {
        alert("please fill all the values and click go -");
    }   
    else
    {
        var curd = new Date(curyear,curmon-1,curday);
        var cald = new Date(calyear,calmon-1,calday);
        var diff =  Date.UTC(curyear,curmon,curday,0,0,0) - Date.UTC(calyear,calmon,calday,0,0,0);
        var dife = datediff(curd,cald);
        var monleft = (dife[0]*12)+dife[1];
        var secleft = diff/1000/60;
        var hrsleft = secleft/60;
        var daysleft = hrsleft/24;
        var as = parseInt(calyear)+dife[0]+1;
        var datee = diff/1000/60/60/24;
    }
    if((calyear == 2010 && calmon > 10) || (calyear == 2011 && calmon < 11)) {
        console.log("They should be in the 2YO");
        document.getElementById("demo").innerHTML="<p>Your student would more than likely enter the 2YO class. The 2YO students will have class at the Nanshan campus. To apply, please fill out the following application.</p> <a href="http://www.w3schools.com/" target="_blank">Visit W3Schools!</a>";
        }
        if((calyear == 2009 && calmon > 10) || (calyear == 2010 && calmon < 11)) {
        console.log("They should be in the 3YO");
        return 3;
    }
    if((calyear == 2008 && calmon > 10) || (calyear == 2009 && calmon < 11)) {
        console.log("They should be in the 4YO");
    }
    if((calyear == 2007 && calmon > 10) || (calyear == 2008 && calmon < 11)) {
        console.log("They should be in the 5YO");
    }
    if((calyear == 2006 && calmon > 10) || (calyear == 2007 && calmon < 11)) {
        console.log("They should be in the 6YO");
    }
    if((calyear == 2005 && calmon > 10) || (calyear == 2006 && calmon < 11)) {
        console.log("They should be in the 7YO");
    }
    if((calyear == 2004 && calmon > 10) || (calyear == 2005 && calmon < 11)) {
        console.log("They should be in the 8YO");
    }
    if((calyear == 2003 && calmon > 10) || (calyear == 2004 && calmon < 11)) {
        console.log("They should be in the 9YO");
    }
    if((calyear == 2002 && calmon > 10) || (calyear == 2003 && calmon < 11)) {
        console.log("They should be in the 10YO");
    }
    if((calyear == 2001 && calmon > 10) || (calyear == 2002 && calmon < 11)) {
        console.log("They should be in the 11YO");
    }
    if((calyear == 2000 && calmon > 10) || (calyear == 2001 && calmon < 11)) {
        console.log("They should be in the 12YO");
    }
    if((calyear == 1999 && calmon > 10) || (calyear == 2000 && calmon < 11)) {
        console.log("They should be in the 13YO");
    }
    if((calyear == 1998 && calmon > 10) || (calyear == 1999 && calmon < 11)) {
        console.log("They should be in the 14YO");
    }
    if((calyear == 1997 && calmon > 10) || (calyear == 1998 && calmon < 11)) {
        console.log("They should be in the 15YO");
    }
    if((calyear == 1996 && calmon > 10) || (calyear == 1997 && calmon < 11)) {
        console.log("They should be in the 16YO");
    }
    if((calyear == 1995 && calmon > 10) || (calyear == 1996 && calmon < 11)) {
        console.log("They should be in the 17YO");
    }
    if(calyear == 1995 && calmon < 11) {
        console.log("Your child is too old to attend QSI");
    }
}
</script>
<form name="birthday" action="">
Date<select name="day" size="1">
<script type="text/javascript">
 for(var j=1;j<32;j++)
   document.write("<option value="+j+">"+j+"</option>");
</script></select>&nbsp;
Month<select name="month" size="1">
<script type="text/javascript">
 for(var i=1;i<13;i++)
 document.write("<option value="+i+">"+i+"</option>");
</script></select>&nbsp;
Year
<select name="year" size="1">
<script type="text/javascript">
 for(var k=startyear;k<endyear;k++)
 document.write("<option value="+k+">"+k+"</option>");
</script></select> 
<br><br>
<input name="start" onclick="calage()" value="Calculate" type="button">
</form>
</td></tr></table>
<div id="demo">

</div>
</body>
</html>
4

2 に答える 2

0

これを試して:

        document.getElementById("demo").innerHTML="<p>Your student would more than likely enter the 2YO class. The 2YO students will have class at the Nanshan campus. To apply, please fill out the following application.</p> <a href='http://qsishekou.org' target='_blank'>QSI Shekou!</a>";

あなたが持っているように、文字列を "" で囲みます。' を使用して属性を囲みます。

例えば:

var str = "hello, I am" gonna go" here";

文字列を閉じてから連結しないため、例外が発生するため、エラーが発生します。

それで、

var str = "hello, I am' gonna go' here";

適切でしょう。

また

var str = "hello, I am" + "gonna go here";

または、二重引用符を使用する必要がある場合は、バックスラッシュを使用してください。

var str = "hello, I am\" gonna go\" here";
于 2013-02-25T07:14:44.593 に答える