JS中双引号单引号,转义字符问题!!

<divonclick=\"openUrl('<s:urlvalue='%{resUrl}'/>')\"></div><s:urlvalue='%{resUrl}'/>是... <div onclick=\" openUrl( ' <s:url value='%{resUrl}'/> ' ) \"></div>
<s:url value='%{resUrl}'/>是获得的请求,值是/appinfo/doReadAppInfoList.do
<input value='<s:property value='resName'/>' >

这段代码有很多符号,看的我很疑惑,希望大神帮忙解答

这里面有一对双引号,两对单引号,他们之间添加转义字符是按什么规则来做?写JS什么时候需要转义?
onclick里调用一个函数openUrl('<s:url value='%{resUrl}'/>'),函数的参数就是/appinfo/doReadAppInfoList.do。这里的Struts标签'<s:url value='%{resUrl}'/>' ,对比我另外的一段

input里的标签,标签外多了一对单引号,而且标签内还多了个%{ },这是为什么啊??

希望大神们帮下忙!!感激不尽!!
展开
 我来答
不爱宝玉的宝钗
2014-04-01
知道答主
回答量:10
采纳率:0%
帮助的人:6.4万
展开全部
html的双引号是正常的吧,每一个属性,例如:value="",一般都有双引号包着。但是用js添加页面节点的时候,需要转义,比如:
var html = "<div onclick=\" openUrl( ' <s:url value='%{resUrl}'/> ' ) \"></div>";
document.getElementById("main").innerHTML = html;
看到最外面的那个双引号的了吗,是表示一个字符串变量的意思,而被包在里面的双引号就不起作用,只有在页面显示的时候才会起作用,也就是说js不会认为第一个双引号和第二个双引号是一对,会认为</div>";这个双引号才是结尾,因为中间的被"\"转义了。
openUrl函数中的第一对单引号是表示字符串的意思,你省去也不会报错,中间那一对则是标签的属性需要。
最后的问题说明你对struts的标签不熟,可以看下struts的property和ognl表达式,最多半个小时可学会
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式