我的循环工作正常,但 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/