javascript - 我的 jsp 代码中出现一些奇怪的情况,x++ 不起作用

标签 javascript java html jsp

我的循环工作正常,但 jsp 中 x 变量的值没有改变。

function divProductVisible(elem){
                var div = document.getElementById('linkHD');
                var divProduct = document.getElementById('linkProduct');
                div.style.visibility = 'visible';
                divProduct.style.visibility = 'hidden';
                var linkHD = elem.innerHTML;
                var x =3;
                var y;
                var i;
                <% int x= 0;%>
                alert(<%=x%>);
                for(i = 0; i < x ;i++){
                    <% dataProduct1 = daftarProduct1[x]; x++;%>
                            alert(<%=x%>);

                }  
            }

但是,这段代码运行良好

function divHDVisible(elem){
            var div = document.getElementById('linkHD');
            var divProduct = document.getElementById('linkProduct');
            div.style.visibility = 'visible';
            divProduct.style.visibility = 'hidden';
            var linkHD = elem.innerHTML;
            var x =<%=daftarJobs1.length%>;
            var y;
            var i;
            for(i = 0; i < x ;i++){
                <% dataJobs1 = daftarJobs1[x]; x++;%>
                if(linkHD.toString() == <%=dataJobs1.getID_Harware_Use()%>){
                <%
                idTT = dataJobs1.getID_Harware_Use();
                %>
            }
            }
            alert(<%=x%>);
        }

两种方法都在同一页面中,并且输出必须相同。

最佳答案

我假设这两个 block 位于同一个 JSP 文件中。

对于 JSP,<% %> 以外的任何内容只是文本,因此对于实际执行,它只会看到:

text
<% int x= 0;%>
text<%=x%>text
text
<% dataProduct1 = daftarProduct1[x]; x++;%>
text<%=x%>text
text

text
text<%=daftarJobs1.length%>text
text
<% dataJobs1 = daftarJobs1[x]; x++;%>
text<%=dataJobs1.getID_Harware_Use()%>text
<% idTT = dataJobs1.getID_Harware_Use(); %>
text
text<%=x%>text
text
<小时/>

执行后,变为:

text
text0text
text
text1text
text

text
text3text
text
text999text
text
text2text
text

哪里999值为 daftarJobs1[1].getID_Harware_Use() .

<小时/>

所以第二个 block 无法编译。第一个 block 变成:

function divProductVisible(elem){
    var div = document.getElementById('linkHD');
    var divProduct = document.getElementById('linkProduct');
    div.style.visibility = 'visible';
    divProduct.style.visibility = 'hidden';
    var linkHD = elem.innerHTML;
    var x =3;
    var y;
    var i;
    alert(0);
    for(i = 0; i < x ;i++){
        alert(1);
    }  
}

function divHDVisible(elem){
    var div = document.getElementById('linkHD');
    var divProduct = document.getElementById('linkProduct');
    div.style.visibility = 'visible';
    divProduct.style.visibility = 'hidden';
    var linkHD = elem.innerHTML;
    var x =3;
    var y;
    var i;
    for(i = 0; i < x ;i++){
        if(linkHD.toString() == 999){
        }
    }
    alert(2);
}

那么,哪一个做了您期望的事情呢?

关于javascript - 我的 jsp 代码中出现一些奇怪的情况,x++ 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33272751/

相关文章:

javascript - jQuery:无法删除类

javascript - Emberjs 中的实例初始化器

java - Vaadin 选择所有用户

java - 生成一个 5 位数字的随机 Pin

javascript/html/css 显示/隐藏框

html - Glyphicon 显示在按钮文本上方

javascript - 使文本输入看不见但有形

javascript - body 上的 onunload 不起作用

javascript - 如何在 1.5 中取消 AngularJS 中 $resource 的 promise

java - 转换为 String 和 String.valueOf 之间的区别