如何在js中使用wp_localize_script()变量作为变量? (不是字符串)

Posted

技术标签:

【中文标题】如何在js中使用wp_localize_script()变量作为变量? (不是字符串)【英文标题】:How to use wp_localize_script() variable in js as a variable? (not as string) 【发布时间】:2021-11-06 20:23:43 【问题描述】:

我在我们的 wordpress 后端添加了一个字段,我可以在其中写入文本。 (例如“colorVariation + btnVariation)->这应该稍后为js变量定义一个特定的顺序

我可以使用 wp_localize_script 函数在我的 js 文件中接收此文本。

  wp_localize_script('wc-product-js', 'script_vars', array(
      'order' => get_field("wc_variation_order"),
      )
  );  

似乎是,当我尝试在我的 js 文件中使用该变量时,此变量 get 已转换为字符串。像这样:

    var colorVariation = '_red';
    var btnVariation = '_male';        
    var order = script_vars.order;

    var varId = '.variation' + order;

我的预期输出是“.variation_red_male”,但输出是“.variationcolorVariation + btnVariation)

有没有办法转换这个字符串?

【问题讨论】:

【参考方案1】:

好的。最后我自己找到了这个功能。是 eval()。

eval() 函数能够计算或执行一个参数 在里面通过。如果参数是一个表达式,这个函数 将评估表达式并且参数是一个或多个 javascript 语句,eval() 执行语句。

引用https://www.codespeedy.com/convert-string-into-variable-name-in-javascript/

var colorVariation = '_red';
var btnVariation = '_male';        
var order = script_vars.order;

var varId = '.variation' + eval(order);

【讨论】:

为什么? / 有没有更好的办法? -谢谢 因为 any 字符串将被评估为有效代码。 为了帮助您找到更好的方法,请在 phpvar_dump() 订购,并从 JS 控制台console.log() 订购。

以上是关于如何在js中使用wp_localize_script()变量作为变量? (不是字符串)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Graphql.js 中使用 GraphQL 订阅

如何使用 Passport.js 在 Node.js 中重置/更改密码?

如何将js的变量在php中使用

如何在悬停中使用velocity.js?

如何在 Node.js 中使用 HTTPS

如何在 Nuxt.js 中使用官方 Swiper.js 作为插件