【问题标题】:Combining single and double quotes in JavaScript在 JavaScript 中组合单引号和双引号
【发布时间】:2015-06-03 04:35:24
【问题描述】:

我想知道 JavaScript 是否有一种书写格式来使用在 JavaScript 函数中同时具有单引号和双引号的 html 元素。可能类似于 javascript 的 heredoc,也可能是 jQuery 中的函数。 我找不到我的问题的解决方案,将尝试在下面描述它:

我正在编写一个关于 php 的网页。我有一个页面,里面有一个form。有一个 jQuery 函数可以将 select 元素附加到表单中。附加后,用户选择一些选项并提交表单。 (我很想在这里贴一整段代码,让代码更清晰,但是代码量很大,不是很好,所以我试着为你简化一下,对于一些糟糕的代码,请见谅)

我有一个像这样的 php 变量(selectonchange 事件,showUser 是一个带有 AJAX 请求的函数):

$string = <<<EOT
<select name="sapak[]" onchange='showUser(this.value, document.getElementsByName("dereje[]")[0].value)'>
EOT;

还有很多 option 介于两者之间,当然还有关闭 &lt;/select&gt;(我没有把所有的代码都写得更短)。将select 附加到form 的jQuery 函数的一部分:

$(wrapper).append('<div> <? echo $string; ?> <a href="#" class="remove_field">Del</a></div>');

我的问题是在$string 变量中我必须使用单引号和双引号,而当涉及到jQuery 中的append() 函数时,我再次使用引号。所有这些都给我在浏览器控制台Uncaught SyntaxError: Unexpected identifier 中的错误,因为单引号从append(' 开始,但在onchange=' 结束。有什么聪明的解决方案吗?我认为heredoc会是,我已经用谷歌搜索了,我认为实际上没有用于javascript的heredoc。是否可以使用其他格式?

【问题讨论】:

  • 你试过echo addslashes($string)吗?
  • 你听说过字符转义吗?
  • @Imperative 我试过了,但最后又引用了很多引号: $(wrapper).append('
    ');
  • 一开始我使用了字符转义,但是没有用。可能是我错过了什么(

标签: javascript jquery heredoc


【解决方案1】:

这应该有效:

$(wrapper).append("<div> <? echo $string; ?> </div>");

$string = <<<EOT
<select name=\"sapak[]\" onchange=\"showUser(this.value, document.getElementsByName('dereje[]')[0].value)\">
EOT;

@Imperative 建议字符转义

【讨论】:

  • 谢谢,但仍然出现同样的错误“Uncaught SyntaxError: Unexpected identifier”:$(wrapper).append("
  • 您必须转义字符串中的每个双引号,但不能转义单引号
  • 我可以在 $(wrapper).append('
    echo $string; ?>
    '); 上使用单引号吗? ?我有自动生成的代码,里面有很多双代码,所以我更喜欢在 jQuery 函数中使用单引号
  • 是的,你可以,在这种情况下,你必须在你的字符串中转义单引号。
猜你喜欢
相关资源
最近更新 更多
热门标签