JavaScript-在JS中用innerHTML如何打印出能够执行的EL语句

发布于 2016-10-10 12:04:24 字数 262 浏览 1269 评论 2

我在做项目的时候用到
function(num){
//num是页面传来的参数
$("#printDiv").html("${userList.get("+num+").userName}");
}
报了类型转换的错误,但是用
function(num){
$("#printDiv").html("${userList.get(0).userName}");
}
则可以正常运行,这是为什么呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

晚风撩人 2017-10-06 15:17:21

js 是动态语言,用parseInt转换,试一下

浮生未歇 2017-02-18 05:07:04

是这样的,EL的代码是在后台解析及运行的,而JS的代码是在浏览器中解释执行的。

$("#printDiv").html("${userList.get("+num+").userName}");

这样的代码在后台根本不是有效的EL表达式,所以无法执行。

$("#printDiv").html("${userList.get(0).userName}");

这样的代码是有效的EL表达式,所以后台运行完毕之后输出到浏览器中的代码就是:

 $("#printDiv").html("EL运行完毕之后的值");

如果你需要在JS中使用EL中的值,那么最直观的做法就是使用EL把数据输出到DOM元素,然后使用JS来操作这个DOM元素中的值。例如:

 <div id="dataDiv">
<c:forEach items="${userList}" var="u">
<span><c:out value="${u.userName}"/></span>
</c:forEach>
</div>

然后使用JS获取所有的承载数据的SPAN元素:

 var dataSpans = $("#dataDiv > span");
// Your code goes here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文