jquery动态创建元素同时设置属性(转义字符遇到的问题)

在这里插入图片描述
如果我们创建元素后需要取此元素的html内容存起来,大概是使用这种方法
但是如果是下面的情况

有特殊字符的情况
在这里插入图片描述

会被转义
在这里插入图片描述
在这里插入图片描述
如果元素的自定义属性值有如果的转义字符,见下例
在这里插入图片描述
可以发先 & 、" 两个被转义了,其它的并没有被转义

问题来了
如果有场景如下,则会被两次转义

$('<div>',{
	name: '123213&amp;&quot;21313'
})

在这里插入图片描述
这个其实看起来不是问题,就是设计的规则
但是我们在用起来就不是很友好了

解决方如下

第一种(不知道会不会有问题)

在这里插入图片描述

此方法目前看来 3.3.1是支持这种写法的,网上并没有找到相关的说法,可能需要研读一下源码

第二种

//HTML转义
function HTMLEncode(html) {
	var temp = document.createElement("div");
	(temp.textContent != null) ? (temp.textContent = html) : (temp.innerText = html);
	var output = temp.innerHTML;
	temp = null;
	return output;
}
//HTML反转义
function HTMLDecode(text) { 
	var temp = document.createElement("div"); 
	temp.innerHTML = text; 
	var output = temp.innerText || temp.textContent; 
	temp = null; 
	return output; 
} 

在这里插入图片描述

参考链接
js转义和反转义html
https://www.cnblogs.com/daysme/p/7100553.html

转义字符】HTML 字符实体& lt; & gt: & amp;等
https://blog.csdn.net/czh500/article/details/80257782

HTML转义字符 && XML转义字符(常用)
https://blog.csdn.net/Dear_BigTiger/article/details/83416653

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值