如何在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 字符串将被评估为有效代码。 为了帮助您找到更好的方法,请在 php 中var_dump()
订购,并从 JS 控制台console.log()
订购。以上是关于如何在js中使用wp_localize_script()变量作为变量? (不是字符串)的主要内容,如果未能解决你的问题,请参考以下文章