如何转义jquery字符串

时间:2015-06-29 22:02:30

标签: jquery

我使用jquery来解析字符串

message="<div messageid=999 value=something>hello</div>";
$(message).attr('messageid');

这很有用......除非消息包含一些字符,如:!

message="!hello world!";
$(message).attr('messageid');

解决这个问题的解决方案是什么?

1 个答案:

答案 0 :(得分:3)

当您将字符串作为第一个参数传递给jQuery函数($)时,该函数会尝试确定它是选择器还是HTML字符串。

当你使用感叹号或冒号,并且字符串中没有HTML标签时,jQuery会认为它是一个选择器,因为“!”和“:”是选择器语法的一部分。

这就是调用$('!hello world!')会引发错误的原因。

您可以使用$.parseHTML强制它将其视为HTML字符串:

$($.parseHTML(message)).attr('messageid')

请注意使用“!”时出现 no 问题和“:”如果字符串中有标记:

message="<div messageid=999 value=something>:No problems here!</div>"
$(message).attr('messageid')

<小时/> 我的答案基于您试图避免运行时错误的假设。查询$('hello world')$($.parseHTML('!hello world!'))上的属性显然会返回undefined