0

我在我的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
4

2 回答 2

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>" +
于 2013-08-27T12:17:34.617 回答
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
于 2013-08-27T12:15:07.797 回答