【问题标题】:How to work with javascript data objects? How to access the entries by variables?如何使用 javascript 数据对象?如何通过变量访问条目?
【发布时间】:2013-11-26 15:22:44
【问题描述】:

我通过 php 向 javascript 传递了一个多维数组:

var my_javascript_var = <?php echo json_encode($my_php_var); ?>;

但现在我不知道如何访问这些条目。我尝试了 my_javascript_var['first-level-entry'] 和 my_javascript_var->first-level-entry 但它总是返回未定义。我正在阅读一些文档和东西,但令人惊讶的是我没有找到任何有用的东西。这似乎是一个简单的问题。那么有人知道答案吗?

我的目的是在有人单击列表中的缩略图时创建一个弹出视频。列表项具有视频的 id。因此,根据单击哪个缩略图,我会使用

获取单击的列表项的 id
$('#clips li').click(function () {
     var clip_id = $(this).children().attr('id');
});

我想将该变量与对象条目进行比较,并从对象中获取视频 url。不幸的是,到目前为止我失败了。希望你们中的一些人能给我一些建议;)

问候

【问题讨论】:

  • 显示$my_php_var定义。
  • 至少发布json_encode 的结果样例。这是一个 JavaScript 问题,但如果你不给我们有问题的 JavaScript,我们这些不熟悉 PHP 的人不会有太大帮助。
  • 正如我所说:它只是一个在第一级具有 ids 的对象,在下面的级别是指向视频和海报图像的链接)。 ID 和链接可能会有所不同。在顶层看起来像这样: [Object { 1429={...}}, Object { 9041={...}}] 下面是这样的: Object { thumbnail="http:...", mainthumbnail= "http:...", mp4url="http:...", 更多...}

标签: javascript php json object multidimensional-array


【解决方案1】:

JavaScript 没有“多维数组”这样的东西,如果通过json_encode 它变成了一个 Array of Arrays 那么你需要通过索引来访问,即

var my_javascript_var = [
    ['a', 'b'],
    ['c', 'd']
];
my_javascript_var[1][0]; // "c"

【讨论】:

  • 哦,谢谢!这对我来说真的不切实际,并且使我的工作更加困难:(所以没有办法将其转换为一种多维数组?或者至少是一种在 json 对象中搜索变量并获取较低级别条目的方法?
  • 这取决于您要序列化的内容 - 列表列表(如上所示)可能并不理想,但您始终可以序列化具有属性的对象以获得类似...{'Something': [1, 2, 3], 'SomethingElse': [4,5,6], 'OrEven': {'Sub1': 7, 'Sub2': 8, 'Sub3': 'etc...'}}。那会
  • 啊,我明白了。我只想取回 json 最高级别的 2 个对象,例如 [Object { 1429={...}}, Object { 9041={...}}] - 我需要这两个没有所有子对象的数组。会是那种形式:[1429, 9041] - 那么是否有一个函数可以做到这一点?
  • JavaScript 中解释 [Object { 1429={...}}, Object { 9041={...}}] 表示带有 2 项目(在索引 01 处)的 Array,项目 @ 987654328@ 是一个 Object 有一个键 1429,而项目 1 是另一个 Object 有一个键 9041。如果您还不知道 Objects 中的键是什么,则必须使用 Object.keys 或其他类似方法来获取 Object 上的键列表i> 并迭代它(这就像迭代另一个数组)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-07
  • 1970-01-01
相关资源
最近更新 更多