我在jsp中使用以下代码。
<%= scriptletVar%>
返回一个12,000字符串。当值硬编码为12,000时,它显示正常。但是当这个值作为scriptlet变量出现时。它只会打印12.将创建一个单独的<tr>
标签,其值为000。
我发现在硬编码时很难找到它的工作方式,但在动态提取时却找不到。有逗号的值有问题,但我无法找到解决方案。
<script type="text/javascript">
$("#table tr:eq(1)").after("<tr><td class='row-highlight txt-ctr'> <strong><span></span></strong></td>"+
"<td class='row-highlight txt-right'><strong></strong></td><td class='row-highlight txt-right'><strong>" +<%= scriptletVar%> +"</strong></td>" +
//Rest of code
答案 0 :(得分:1)
由于JavaScript在客户端执行而JSP在服务器端执行,因此JSP在JavaScript之前执行,而传递为<%= scriptletVar%>
的只是12,000
。不像您期望的那样是字符串,但是当您连接字符串时,Number, Number
将单个数字解析为字符串,但,
将被解释为函数after
的单独两个参数。因此,您必须确保JavaScript知道您希望将12,000
作为字符串处理。您可以通过用双引号"
包围值或仅将字符串连接在一起,但将<%= scriptletVar%>
直接写入静态字符串值来执行此操作。
请尝试以下方法:
$("#table tr:eq(1)").after("<tr><td class='row-highlight txt-ctr'> <strong><span></span></strong></td>"+
"<td class='row-highlight txt-right'><strong></strong></td><td class='row-highlight txt-right'><strong><%= scriptletVar%></strong></td>" +
答案 1 :(得分:0)
如何将<%= scriptletVar %>
放入变量中,而不是将其放入jQuery函数
<script type="text/javascript">
var someNumber = "<%= scriptletVar%>";
$("#table tr:eq(1)").after("<tr><td class='row-highlight txt-ctr'> <strong><span></span></strong></td>"+
"<td class='row-highlight txt-right'><strong></strong></td><td class='row-highlight txt-right'><strong>" + someNumber +"</strong></td>" +
//Rest of code