84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
EL表达式,向JS内传递参数遇到问题。
传递值类型,加上单引号就可以:
<a class="btn" href="javascript:test('${param.name}');" id="name">姓名</a>
想要传递对象(Map、List等),一直是空值,加上单引号,就是一个类名@hash值的一个字符串。
类名@hash值
很纠结,如何向JS内传递对象类型的EL表达式呢?不至于无法实现吧。
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
1.你传递对象最后要拿到对象里的某个值,可以直接采用获取参数的形式
<a class="btn" href="javascript:test('${map.name}','${map.age}');" id="name">姓名</a>
2.如果你非要传递对象的话,可以先把对象转成JSON字符串,然后在test方法中转成JSON
<a class="btn" href="javascript:test('${mapString}');" id="name">姓名</a> function test(str) { try { var obj = JSON.parse(str); //TODO } catch (e) { throw e; } }
3.使用第二种方式有风险,例如你的map中有用户输入的信息,包含引号就会出现HTML解析错误。一般这种情况我是这样处理的
<a class="btn" href="javascript:void(0)" id="name" data-name="${map.name}" data-age="${map.age}">姓名</a> $('#name').click(function () { var $this = $(this); var name = $this.data('name'); var age = $this.data('age'); //TODO }); 数据过多我会写个方法来获取数据 $('#name').click(function () { var $this = $(this); var data = seriData($this); //TODO }); function seriData(el) { return { name: el.data('name'), age: el.data('age'), grade: el.data('grade') } }
1.你传递对象最后要拿到对象里的某个值,可以直接采用获取参数的形式
2.如果你非要传递对象的话,可以先把对象转成JSON字符串,然后在test方法中转成JSON
3.使用第二种方式有风险,例如你的map中有用户输入的信息,包含引号就会出现HTML解析错误。一般这种情况我是这样处理的