我需要在js脚本中创建var,如下所示:
var map = "<div class="map"><?php echo do_shortcode('[wpgmza id="3"]'); ?></div>";
,但是撇号和引号会破坏代码。如何对其进行更改以使其起作用?
答案 0 :(得分:1)
使用其他引号或将其转义。
var map = `<div class="map"><?php echo do_shortcode('[wpgmza id="3"]'); ?></div>`;
var map2 = "<div class=\"map\"><?php echo do_shortcode('[wpgmza id=\"3\"]'); ?></div>";
console.log(map);
console.log(map2);
答案 1 :(得分:1)
转义引号。
var map = "<div class=\"map\"><?php echo do_shortcode('[wpgmza id=\"3\"]'); ?></div>";
如果您使用"
打开值,那么JavaScript将寻找第二个"
来知道值的结尾。由于您现在在值中使用此值,因此它会尽早停止。通过转义要在值中使用的"
,可以确保JavaScript知道它是值的一部分。
因此,在您的代码中,JavaScript将在第二个"
之后停止:
var map = "<div class="
如您所见,您现在使用"
打开了它,在=
之后还有另一个"
,因此该值将被关闭。但是,之后还有更多代码:map"><?php echo do_shortcode('[wpgmza id=\"3\"]'); ?></div>";
由于JavaScript不知道如何处理此部分,因此会引发错误。
如果您不理解以上部分,也许这样会更好地解释它:
您可以将其视为if语句,其中if { }
需要两个括号。一个打开{
,另一个关闭}
。在您的值中,您还需要两个字符,一个字符打开,一个字符关闭。在您的情况下,您可以使用"
打开值,并使用"
关闭。因此,一旦达到第二个"
,它将关闭该值。
您所做的分配与此if语句类似:if { } }
。 JavaScript不知道如何处理最新的}
,因为没有其他if-statement
要关闭,因此它会引发错误。
答案 2 :(得分:0)
您可以使用以下几种方法来固定变量的值:
转义报价
您可以在双引号中添加反斜杠,以使JS解析器忽略它们。为了清楚起见,我还将连接PHP值:
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>';
如果您更喜欢HTML属性值中的单引号,则也可以采用其他方法
var map = "<div class='map'>" + <?php echo do_shortcode('[wpgmza id="3"]'); ?> + "</div>";
模板文字
在ES6中,可以使用反引号字符使用模板文字。注意,您可以在模板文字中使用单引号和双引号:
var map = `<div class="map"><?php echo do_shortcode('[wpgmza id="3"]'); ?></div>`;
答案 3 :(得分:-2)
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>";