ES6拼接字符串和EL表达式冲突问题(jsp代码中javascript代码使用ES6拼接字符串值为空)

在ES6中拼接字符串十分快捷方便。如:

$("#text_es6").html(`
  <h1>冲突!>/h1>
  <p>离解决冲突还有
  ${second}秒。</p>
`); 

方便是方便,但在jsp或者其他带有类似el表达式的地方会出现一些问题(因为es6和jsp使用的都是${}来解析

如在jsp中写入如上js代码时,jsp会首先把${second}看成el表达式,但是因为jsp里边是没有second数据的,所以就会出现空值。

解决方法如下:

第一种:在表达式外边套一层表达式,把里边的表达式用双引号引起来,让jsp看成字符串,如下:

${"${second}"}

var second = 5;
$("#text_es6").html(`
  <h1>冲突!</h1>
  <p>离解决冲突还有${"${second}"}秒。</p>
`); 

 

第二种:这种方法最简单,就是把javascript代码放到单独的js文件里边,然后在html代码中引用它。如下:

 

text.js

$(document).ready(function(){
	$("#text_es6").html(`
		<h1>冲突!</h1>
		<p>离解决冲突还有${second}秒。</p>
	`);
});

 

index.html

 

<script type="text/javascript" src="text.js" charset="utf-8"></script>
  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值