有没有办法在jQuery变量中使用单引号和双引号?

时间:2018-04-09 17:48:50

标签: javascript jquery

我需要在变量中保存这一行:

<?php echo do_shortcode('[ajax_load_more container_type="div" post_type="ps_resources" posts_per_page="6" pause="true" scroll="false" button_label="Load More"]'); ?> 

基本上是这样的:

var loadMore = '<?php echo do_shortcode('[ajax_load_more container_type="div" post_type="ps_resources" posts_per_page="6" pause="true" scroll="false" button_label="Load More"]'); ?>'; 

这可能吗?我试图逃避双引号,但我没有运气。

3 个答案:

答案 0 :(得分:1)

有几种方法可以解决这个问题。

这些最简单的方法是使用反引号(模板文字),尽管您可能需要将其编译为ES5才能在旧浏览器上运行。

var loadMore = `<?php echo do_shortcode('[ajax_load_more container_type="div" post_type="ps_resources" posts_per_page="6" pause="true" scroll="false" button_label="Load More"]'); ?>`;

第二种方法是使用\

来转义内部单引号
var loadMore = '<?php echo do_shortcode(\'[ajax_load_more container_type="div" post_type="ps_resources" posts_per_page="6" pause="true" scroll="false" button_label="Load More"]\'); ?>'; 

第三种方法是连接字符串:

var loadMore = '<?php echo do_shortcode('+"'"+'[ajax_load_more container_type="div" post_type="ps_resources" posts_per_page="6" pause="true" scroll="false" button_label="Load More"]'+"'"+'); ?>'; 

答案 1 :(得分:-1)

你可以这样做:

var loadMore = '<?php echo do_shortcode('[ajax_load_more container_type="div" post_type="ps_resources" posts_per_page="6" pause="true" scroll="false" button_label="Load More"]'); ?>';

一旦你点击<?php你在PHP上下文中,并且它不知道js引用,你就不必担心来自js的引用。您需要担心的一件事是,如果该函数的输出中有任何单引号,那么我会这样做:

var loadMore = '<?php echo str_replace("'", "\'", do_shortcode('[ajax_load_more container_type="div" post_type="ps_resources" posts_per_page="6" pause="true" scroll="false" button_label="Load More"]')); ?>';

答案 2 :(得分:-2)

是的,您可以使用`

来完成
var loadMore = `"' TEST'"`;
console.log(loadMore); // "' TEST'"

请记住,在`内,您可以根据需要使用"'。 所以对于你的例子,你可以这样做:

var loadMore = `'<?php echo do_shortcode('[ajax_load_more container_type="div" post_type="ps_resources" posts_per_page="6" pause="true" scroll="false" button_label="Load More"]'); ?>'`;