How to kill this unexpected identifier?
我有一些法语文本,在选择项选项中使用单引号和双引号作为函数参数。
1 2 3 4 5 6 7 8 9 10 11 | $.get(submit_url + '/spelist', { action: 'spelist', list: 'a' }, function(msg) { $('#ac1').html(''); for(be in msg.db) { var part_one = msg.db[be].id; var part_two = msg.db[be].list; $('#ac1').append('<option style="padding:10px 0px;" onclick="button_5a1_list_submit(' + part_one + ',\'' + part_two + '\');">' + part_two + '</option>'); } }); |
创建如下:
1 | onclick="button_5a1_list_submit(20, 'value has single quote 'again text');" |
但是单引号或双引号会导致意外的标识符,如何终止它?
由于大多数浏览器无论如何都不支持
我建议在您的选项中添加一个
1 | $("#ac1").append("<option data-val=""+part_one+"">"+part_two+"</option>"); |
与
1 2 3 4 5 6 | $("#ac1").on("change", function(){ var sel = $(this); var val = sel.val(); var data = sel.find("option:selected").data("val"); button_5a1_list_submit(data, val); }); |
这是一个跨浏览器的解决方案,当您从