【发布时间】:2018-10-19 21:25:41
【问题描述】:
我正在使用 WordPress 将 get_categories 放入一个变量中,然后尝试从 get_categories 数组中获取类别名称,然后将其传递给一个 jQuery 变量,让它检查 jQuery 中的另一个条件。
到目前为止,我能够正确地从 get_categories 获取数据,然后使用 json_encode 将该数组解析为 json 格式。
但我要挂断的是我只想要来自 WordPress 的 get_categories 数组的 name,然后将其传递给 jQuery 以运行条件。
我不确定正确格式化该格式的正确方法,以便 jQuery 可以解释它而不会对此感到胡思乱想。
这是我目前所拥有的:
代码:
<?php $test = get_categories('taxonomy=stuff&type=item'); ?>
<script type="text/javascript">
jQuery(document).ready(function($) {
var $things = <?php echo json_encode($test); ?>
$(".this-div").each(function() {
var $item = $(this).attr("title");
if ($things.indexOf($item) > -1) {
$(this).addClass('current');
}
});
});
</script>
我已经尝试过$test[0]->name,但这只会返回其中一个值,而不是全部。
所以,我不确定我是否正确地解决了这个问题,或者是否有更好的方法。
【问题讨论】:
-
不确定 php 是否有内置的 map 函数,但从概念上讲,您将遍历 $test 元素并从所有名称构建另一个数组,这就是您要回显到 $things
-
是的,我也尝试了
foreach循环,但这产生了一些奇怪的结果。再加上所有的努力都让我走上了json_encode的道路,看起来它应该可以工作,但我觉得我错过了一些东西...... -
您将需要 json_encode 最后的结果数组将其转换为 javascript 能够解析为存储在 $things 中的数组的结构,但您必须创建名称数组你先给它。
-
否则你可能会这样离开它,然后你的
if()条件将更改为可能类似于if ($things.find(function(element){ return element.name === $item; }))Ref。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… -
那是我不确定的另一件事,我将把
foreach循环按操作顺序放在哪里,以便将这些名称存储到一个变量中,以便用 jQuery 提取。
标签: javascript php jquery arrays json