我被要求记录一些代码。一些javascript函数传递像
这样的参数onclick='showhide(<%#String.Format("\"#customer{0}\"",Container.DataItemIndex) %>);'
答案 0 :(得分:8)
他们正在“转义”引号,因此它们可以包含在字符串中。否则,它们会与字符串的开始/结束引号混淆。
答案 1 :(得分:3)
这看起来不像(纯)JavaScript,而是像生成 JavaScript代码(可能是ASP.NET)的其他语言一样:
假设<%# %>
是用于将包含的语句的结果插入到文本中的语言代码,这意味着
String.Format("\"#customer{0}\"",Container.DataItemIndex)
将写在函数调用的结束括号和左括号之间。
这意味着转义字符\
在此处不在JavaScript中使用,而是在宿主语言中使用(可能是C#或VB.NET)。其含义可能与JavaScript相同,但是:它会转义双引号以允许它在字符串文字中表示。
答案 2 :(得分:2)
- 代码中“\”的目的是什么?
醇>
对我来说似乎是逃避序列。假设这是C#代码,代码中的字符串:
"\"#customer{0}\""
由编译器解释为:
"#customer{0}"
(此包含双引号)
当这是response.written时,输出将变为:
onclick='showhide("#customer_1234");'
答案 3 :(得分:1)
是的,这是一个逃脱角色。
在这种情况下,它正在逃避“角色。
答案 4 :(得分:1)
这是上面代码中使用的转义序列。
以字符串\"
编写时相当于"
。即,
<%#String.Format("\"#customer{0}\"",Container.DataItemIndex) %>
DataItemIndex
为9
,则将呈现类似内容
"#customer9"