这几天在项目中遇到要动态添加li标签并且要给该标签添加点击事件同时传入ajax获取到的数据,这就需要与单引号和双引号同时打交道,由于我js技术还不是很好,这对我来说比较麻烦,后来百度找到了解决办法。这里记录下解决方法。
<ul class="down-box" id="checkbox">
<!-- <li><a href="javascript:selectByTime('aaa');" class="down-list">2017 1-12 10:55</a></li> -->
</ul>
由于函数传入参数时是带了单引号的,所以需要处理
for (var i = 0; i < data.length; i ++) {
var t = data[i];
var v = "<li><a href = '#' onclick =\"selctByTime('" + EscapeChar(t) + "')\" class=down-list >"+t+"</a></li>";
//$('#checkbox').append("<li><a href=javascript:selctByTime("+t+"); class=down-list>"+t+"</a></li>");
$('#checkbox').append(v);
}
其中,利用了网上找到的字符转义处理的函数 ,方法如下:
//字符转义
function EscapeChar(HaveSpecialval) {
//转换半角单引号
HaveSpecialval = HaveSpecialval.replace(/\'/g, "\\\'");
//也可以使用´
HaveSpecialval = HaveSpecialval.replace(/\'/g, "´");
return HaveSpecialval;
}