jquery动态生成dom元素设置属性包含&

  最近项目中,需要在页面加载完成之后,ajax请求服务器返回json数据动态生成页面标签,但是生成的dom元素会出现字符串中的&会被转换成$amp;amp;多出了一个amp;

var a_element = $("<a href='' attr='funcTest'></a>");

a.element.attr({"href":"javascript:funcName(<info attr1='http://test.php&amp;t=1'/>)"});

生成的DOM元素查看如下

<a href='javascript:funcName(<info attr1='http://test.php&amp;amp;t=1'/>)'></a>

这样会导致funName函数执行的之后,参数错误,见了鬼了,我一直以为是服务器端返回的json字符串多出了字符amp;字符串,于是服务器端对字符串进行 str_replace([';amp'],[''],$data);

客户端拿到字符串后进行 replace处理 data.href.replace(/amp;/ig,'');总是不行,最后感觉应该是jquery在对字符串处理的时候自动加入的amp;

所以我就改成再使用jquery拿取字符串之后再处理

$(function(){

  $(document).on('click','a[attr=funcTest]',function(ev){

    ev.preventDefault();

    var attr_href = $(this).attr('href');

    attr_href.replace(/amp;/ig,'');

    eval(attr_href);

  })

});

posted @ 2016-04-27 11:48  sun_2009  阅读(702)  评论(0)    收藏  举报