Javascript语法问题

Javascript syntax problems

本文关键字:问题 语法 Javascript      更新时间:2023-09-26

我正在从代码后面创建一个新的文本控件,我在其中添加了标准html,效果很好。我试图将<%= SomeDiv.ClientID %>添加到这个文本控件中,但它实际上会将代码后面的内容打印到源代码中。

代码背后:

new LiteralControl("<div id='" + paneID.Replace(" ", "") + "_Expand' runat='server' onclick='ChangePanelHeader(&#39;<%= " + paneID.Replace(" ", "") + "_Expand.ClientID %>&#39;" + ", " + "&#39;<%= " + paneID.Replace(" ", "") + "_cpe.ClientID %>&#39;)' class='rhsCollapsiblePanelsHeader'>" + paneTitle + "<br /><br /></div>" + paneContent)

加载页面后在浏览器源中:

<div id='Tellafriend_Expand' runat='server' onclick='ChangePanelHeader(&#39;<%= Tellafriend_Expand.ClientID %>&#39;, &#39;<%= Tellafriend_cpe.ClientID %>&#39;)' class='rhsCollapsiblePanelsHeader'>Tell a friend<br /><br /></div>

想要的结果:

<div id='Tellafriend_Expand' runat='server' onclick='ChangePanelHeader("MyTelAFriendID_Expand", "MyTelAFriendID_cpe") class='rhsCollapsiblePanelsHeader'>Tell a friend<br /><br /></div>

Firefox语法错误:

syntax error
[Break On This Error]   
ChangePanelHeader(<%= Tellafriend_Expand.ClientID %>, <%= Tellafriend_cpe.Cli...
default.aspx (line 1, col 20)

(在我最初的"嗯?"之后)我注意到你正在让你的服务器端代码输出没有引号的id。在JS中,这些id可能需要被视为字符串,所以尝试一下:

ChangePanelHeader("<%= Tellafriend_Expand.ClientID %>", ...);
// add quotes ----^----------------------------------^

(如果不是这样的话,我会等待你评论中承诺的问题重写。)