在ES6中使用反引号 (`)拼接字符串很方便
let name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`
function addA(val, row, index) {
//return '<a href="javascript:void(0)" οnclick="showOldJobInfo(' + index + ')">' + val + '</a>';
return `<a href="javascript:void(0)" οnclick="showOldJobInfo(${index})">${val}</a>`;
}
可是在页面中同样使用EL表达式的时候就会出现${expression}占位符冲突的问题,浏览器执行取不到方法中的参数:
方法1
在内部再嵌套一层${}表达式并且用双引号引起:
方法2
将方法拿到一个单独的js文件中
function addA(val, row, index) {
//return '<a href="javascript:void(0)" οnclick="showOldJobInfo(' + index + ')">' + val + '</a>';
return `<a href="javascript:void(0)" οnclick="showOldJobInfo(${index})">${val}</a>`;
}
<script src="MyOwnTest.js"></script>
这样就就不会互相影响了!
方法3
如果整个页面不使用EL表达式可以在页面顶部加上
<%@ page isELIgnored="true" %>
这样页面就禁用了EL表达式。
在拼接字符串过程中传递参数最好加上单引号,这样多个参数就可以识别
function clickFlagStyle(value, row, index) {
if (row.org_code.indexOf("AA")>=0) {
return `<a href="javascript:void(0)" οnclick="orgLoad('${row.org_id}', '${row.org_code}')">${value}</a>`
} else {
return `<a href="javascript:void(0)" οnclick="deptLoad('${row.org_id}')">${value}</a>`
}
}