Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Quotes BRAKES JS变量_Javascript - Fatal编程技术网

Javascript Quotes BRAKES JS变量

Javascript Quotes BRAKES JS变量,javascript,Javascript,我需要在js脚本中创建var,如下所示: var map = "<div class="map"><?php echo do_shortcode('[wpgmza id="3"]'); ?></div>"; var-map=“使用其他引号或转义它们 var-map=`var-map=/“转义引号 var map = "<div class=\"map\"><?php echo do_shortcode('[wpgmza id=\"3\"]

我需要在js脚本中创建var,如下所示:

var map = "<div class="map"><?php echo do_shortcode('[wpgmza id="3"]'); ?></div>";

var-map=“使用其他引号或转义它们

var-map=`
var-map=/“转义引号

var map = "<div class=\"map\"><?php echo do_shortcode('[wpgmza id=\"3\"]'); ?></div>";
var-map=”“;
如果使用
打开值,JavaScript将查找第二个
以了解值的结束位置。当您现在在值内使用它时,它会提前停止。通过转义要在值中使用的
,您将确保JavaScript知道它是值的一部分

因此,在代码中,Javascript将在第二个
”之后停止:
var-map=”“
由于JavaScript不知道如何处理这一部分,它将抛出一个错误

如果您不理解上面的部分,这可能会更好地解释它:

您可以将其视为if语句,其中需要两个括号。一个打开
{
,一个关闭
}
。在值中还需要两个字符,一个打开,一个关闭。在您的情况下,使用
打开值,使用
关闭值。因此,一旦它点击第二个
,它将关闭该值


您所做的赋值与此if语句相当:
if{}
。JavaScript不知道如何处理最新的
}
,因为没有其他
if语句要关闭,因此它会抛出错误。

您可以使用以下几种方法修复变量的值:

转义引号

您可以在双引号中添加反斜杠,使JS解析器忽略它们。为了清晰起见,我还将连接PHP值:

var map = "<div class=\"map\">" + <?php echo do_shortcode('[wpgmza id="3"]'); ?> + "</div>";

var映射=”“+使用单引号
,或模板文字<代码>变量映射=`…`
话虽如此,您可以创建元素而无需解析HTML字符串。如果PHP部分所响应的HTML也包含各种引号,那么这将不会有帮助。更好的方法是使用AJAX加载内容。Wordpress支持开箱即用的ajax。顺便提一下:由于地图画布(?)插入到服务器上,因此可能不需要走
var
路线。请显示或描述您正在使用
map
执行的操作;至少有一个更好的方法来解决这个问题。我不明白你在第一个案例中使用的是什么引用。这是口音坟墓吗?谢谢,我不知道口音坟墓可以使用,因为Javascript版本“ECMAScript 6”很棒!谢谢:)修复了你的问题的格式,但仍然是错误的。屏蔽是用反斜杠完成的,不能屏蔽外部引号。
var map = "<div class=\"map\"><?php echo do_shortcode('[wpgmza id=\"3\"]'); ?></div>";
var map = "<div class=\"map\">" + <?php echo do_shortcode('[wpgmza id="3"]'); ?> + "</div>";
var map = '<div class="map">' + <?php echo do_shortcode('[wpgmza id="3"]'); ?> + '</div>';
var map = "<div class='map'>" + <?php echo do_shortcode('[wpgmza id="3"]'); ?> + "</div>";
var map = `<div class="map"><?php echo do_shortcode('[wpgmza id="3"]'); ?></div>`;