84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
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解析错误。一般这种情况我是这样处理的