Javascript 如果这些JS代码都在同一行上,为什么不工作呢?

Javascript 如果这些JS代码都在同一行上,为什么不工作呢?,javascript,html,javascript-events,Javascript,Html,Javascript Events,我正在为Javaservlet编写HTML代码。我首先用html/js编写代码,这样我就可以调试我正在做的事情,然后我将把它变成一个java字符串并放在我的servlet中。我的问题是,当我从本地html文件在ff中查看代码时,代码运行良好,但当我在java servlet上查看代码时,它不工作,因为没有调用js 我所做的是格式化servlet生成的html,使其不在一行中,然后再次运行代码。这次成功了。我将此工作代码复制到浏览器地址栏中,使其全部位于一行上,并将该代码复制回html文件中的脚本

我正在为Javaservlet编写HTML代码。我首先用html/js编写代码,这样我就可以调试我正在做的事情,然后我将把它变成一个java字符串并放在我的servlet中。我的问题是,当我从本地html文件在ff中查看代码时,代码运行良好,但当我在java servlet上查看代码时,它不工作,因为没有调用js

我所做的是格式化servlet生成的html,使其不在一行中,然后再次运行代码。这次成功了。我将此工作代码复制到浏览器地址栏中,使其全部位于一行上,并将该代码复制回html文件中的脚本中。现在,当以前工作的代码在一行上时,它就不工作了

以下是格式化的JS:

    var sMax
var holder;
var preSet;
var rated;

var request;

function rating(num){
    sMax = 0;
    for(n=0; n<num.parentNode.childNodes.length; n++){
        if(num.parentNode.childNodes[n].nodeName == "A"){
            sMax++;
        }
    }

    if(!rated){
        s = num.id.replace("_", '');
        a = 0;
        for(i=1; i<=sMax; i++){
            if(i<=s){
                document.getElementById("_"+i).className = "on";
                document.getElementById("rateStatus").innerHTML = num.title;
                holder = a+1;
                a++;
            }else{
                document.getElementById("_"+i).className = "";
            }
        }
    }
}

function off(me){
    if(!rated){
        if(!preSet){
            for(i=1; i<=sMax; i++){
                document.getElementById("_"+i).className = "";
                document.getElementById("rateStatus").innerHTML = me.parentNode.title;
            }
        }else{
            rating(preSet);
            document.getElementById("rateStatus").innerHTML = document.getElementById("ratingSaved").innerHTML;
        }
    }
}


function rateIt(me){
    if(!rated){
        document.getElementById("rateStatus").innerHTML = document.getElementById("ratingSaved").innerHTML + " "+me.title;
        preSet = me;
        rated=1;
        sendRate(me);
        rating(me);
    }
}


function sendRate(sel){

    alert("Your rating was: "+sel.title);

    addRating("rating", "?truck=kogibbq?rating="+ sel.id);
}



function addRating(servletName, servletArguments){
    var servlet = servletName;
    var arg = servletArguments
    var req = servlet + arg;
    alert(req);
    addrequest(req);
    request.onreadystatechange = function(){

        alert("response received");
    }
}

function addrequest(req) {
    try {
        request = new XMLHttpRequest();
    }catch (e) {

        try {
            request = new ActiveXObject("Microsoft.XMLHTTP");
        }catch (e) {
            alert("XMLHttpRequest error: " + e);
        }
    }

    request.open("GET", element, true);
    request.send(null);
    return request;
}
var sMax
风险值持有人;
var预置;
额定无功功率;
var请求;
功能等级(num){
sMax=0;

对于(n=0;n您在以下位置缺少分号:

var sMax


javascript文件的第一行中缺少一个

Sarfraz已经指出了这段代码中的交易障碍,但是对于将来类似的问题,我建议将代码粘贴到中进行验证


它会发现很多错误,这些错误实际上不会破坏您的代码(但是,除非您将整个脚本放在一行中,否则缺少分号也不会),因此,您不必为了使其正常工作而修改每一条注释,但当然,如果您能够遵循JSLint的确切建议,这通常非常好。

在许多地方都缺少分号,每个语句都应该以分号结尾,特别是在通过小型过滤器运行时。PhpStorm可以警告您缺少分号,或者像其他人提到的那样使用JSLint。
var arg = servletArguments