在JavaScript中结合单引号和双引号

时间:2015-03-30 08:27:58

标签: javascript jquery heredoc

我想知道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,当然还有</select>(我没有把所有代码写得更短)。 jQuery函数的一部分,它将select附加到form

$(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。可能还有其他一些格式?

1 个答案:

答案 0 :(得分:1)

这应该有效:

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

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

@Imperative建议关于角色转义