jstl迭代中的JavaScript
我有以下代码:jstl迭代中的JavaScript,javascript,jstl,Javascript,Jstl,我有以下代码: <%int number=0;%> <c:forEach var="row" items="${tAdmin.rows}" varStatus="totalRow" step="1"> <td><%=++number%></td> <td> <div id="content" style="table-layout:fixed; width:40
<%int number=0;%>
<c:forEach var="row" items="${tAdmin.rows}" varStatus="totalRow" step="1">
<td><%=++number%></td>
<td>
<div id="content" style="table-layout:fixed; width:405px; word-wrap:break-word;">
<script language="JavaScript" type="text/JavaScript">
function load(){
var content='${row.content}';
document.getElementById("content").innerHTML=content;
document.getElementById("content").innerHTML=Utf8.decode(document.getElementById("content").innerHTML);
}
window.onload=load;
</script>
</div>
</td>
</c:forEach>
函数加载(){
var content='${row.content}';
document.getElementById(“内容”).innerHTML=content;
document.getElementById(“内容”).innerHTML=Utf8.decode(document.getElementById(“内容”).innerHTML);
}
window.onload=加载;
问题是,它只显示最后一个内容的结果,而不是根据数字逐行打印出来。这不是正确的方法,但一个简单的解决方案是使用
addEventListener
而不是onload
:
<%int number=0;%>
<c:forEach var="row" items="${tAdmin.rows}" varStatus="totalRow" step="1">
<td><%=++number%></td>
<td>
<div id="content<%=number%>" style="table-layout:fixed; width:405px; word-wrap:break-word;">
<script language="JavaScript" type="text/JavaScript">
window.addEventListener("load", function () {
var element = document.getElementById("content<%=number%>");
element.innerHTML=Utf8.decode('${row.content}');
}, true);
</script>
</div>
</td>
</c:forEach>
现在,脚本文件(本例中我使用jQuery在任何浏览器上都可以工作):
这不是正确的方法,但一个简单的解决方案是使用
addEventListener
而不是onload
:
<%int number=0;%>
<c:forEach var="row" items="${tAdmin.rows}" varStatus="totalRow" step="1">
<td><%=++number%></td>
<td>
<div id="content<%=number%>" style="table-layout:fixed; width:405px; word-wrap:break-word;">
<script language="JavaScript" type="text/JavaScript">
window.addEventListener("load", function () {
var element = document.getElementById("content<%=number%>");
element.innerHTML=Utf8.decode('${row.content}');
}, true);
</script>
</div>
</td>
</c:forEach>
现在,脚本文件(本例中我使用jQuery在任何浏览器上都可以工作):
如果在浏览器中查看页面源代码,您正在创建的内容将如下所示(注意${row.content}已在服务器上被替换): 页面片段变得更加简单:
<c:forEach var="row" items="${tAdmin.rows}" varStatus="totalRow" step="1">
<td>${totalRow}</td>
<td>
<div class="contentbits">${row.content}</div>
</td>
</c:forEach>
${totalRow}
${row.content}
如果您在浏览器中查看页面源代码,您正在创建的内容将如下所示(注意${row.content}已在服务器上被替换):
页面片段变得更加简单:
<c:forEach var="row" items="${tAdmin.rows}" varStatus="totalRow" step="1">
<td>${totalRow}</td>
<td>
<div class="contentbits">${row.content}</div>
</td>
</c:forEach>
${totalRow}
${row.content}
可以,但这不是正确的方法。问题是为什么他的onload只得到最后一个元素,我的问题解决了他的问题。但是我说,这不是正确的方法,但是你可以这样做。所以,我只是简单地替换addEventListener中的jQuery函数?你可以,但是$(function(){…})
与window.onload=function(){…}
或window.addEventListener('load',function(){…})相同代码>可以,但不是正确的方法。问题是为什么他的onload只得到最后一个元素,我的问题解决了他的问题。但是我说,这不是正确的方法,但是你可以这样做。所以,我只是简单地替换addEventListener中的jQuery函数?你可以,但是$(function(){…})
与window.onload=function(){…}
或window.addEventListener('load',function(){…})相同代码>onload和Utf8怎么样?我们如何在上述代码中使用它们?@DoniAndriCahyono-这种方法不需要和“onload”处理程序,因为这样做时不需要javascript。在将页面发送到浏览器之前,所有循环和内容替换都在服务器上完成。我经常使用这种方法,并且(正如我对阿德里安的回答所评论的)我使用UTF-8编码的unicode端到端;页面编码通过内容类型
响应标题设置为文本/html;字符集=utf-8。。。我不需要在页面中添加任何内容。关于“onload”和“Utf8”的内容如何?我们如何在上述代码中使用它们?@DoniAndriCahyono-这种方法不需要和“onload”处理程序,因为这样做时不需要javascript。在将页面发送到浏览器之前,所有循环和内容替换都在服务器上完成。我经常使用这种方法,并且(正如我对阿德里安的回答所评论的)我使用UTF-8编码的unicode端到端;页面编码通过内容类型
响应标题设置为文本/html;字符集=utf-8。。。我不需要在页面上写任何东西。
.contentbits {
table-layout:fixed;
width:405px;
word-wrap:break-word;
}
<c:forEach var="row" items="${tAdmin.rows}" varStatus="totalRow" step="1">
<td>${totalRow}</td>
<td>
<div class="contentbits">${row.content}</div>
</td>
</c:forEach>