php - 作为 JavaScript 数组名称的变量

标签 php javascript jquery arrays variables

问题:尝试使用“动态”变量访问 JSON/JavaScript 数组。

#示例#

而不是... array1[ ] array2[ ] 甚至array9000[ ]
< br/> 类似... var my_array = 'array' + 'some generated number' ;

然后就... my_array[ ] my_array[一些数字]

但是这样做' nt 工作...(解决方案现在在底部)



我有一些 PHP 正在读取一些目录加上其中的内容来创建 JSON 数组。 JSON 数组按顺序命名,它们存储图像目录...

示例 JSON 数组名称:images0、images1、images2 等...

    <?php
        $dir = opendir(getcwd());
        $num=0;
        while($folder = readdir($dir)) {
            if($folder !== '.' && $folder !== '..'){
                if (is_dir($folder)) {
                    echo '<script type="text/javascript">';
                    $folderCHILD = opendir($folder);
                    while($image = readdir($folderCHILD)) {
                        if($image !== '.' && $image !== '..'){
                            $images[]=$folder."/".$image;
                        }
                    }
                    closedir($folderCHILD);
                    echo 'images'.$num.' ='.json_encode($images);
                    unset($images);
                    echo '</script>';
                    $num++;
                }
            }
        }
        closedir($dir);
    ?>


然后我有一些 Javascript/Jquery 正在“尝试”通过点击功能访问这些按顺序命名的 JSON 数组。该函数将使用存储在 JSON 数组中的图像目录创建图像。

<script type="text/javascript">
    $(document).ready(function() {
        $('something').click(function() {
            var indexCURRENT = $(this).index();
            var ARRAY = 'images'+indexCURRENT;
            $(document.createElement("img")).attr({ src: ARRAY[some number]}).addClass("image").appendTo('body');
        });
    });
</script>

^上面的Javascipt/Jquery不行^


不过感谢dev-null-dweller这一点代码确实有效...

<script type="text/javascript">
    $(document).ready(function() {
        $('#gallery_link p').click(function() {
            var indexCURRENT = $(this).index();
            var ARRAY = 'images'+indexCURRENT;
            $(document.createElement("img")).attr({ src: window[ARRAY][some number]}).addClass("image").appendTo('body');
        });
    });
</script>

区别是什么?

.attr({ src: window[ARRAY][some number]})

最佳答案

我很确定你不能在 JS 中这样做。您不能将变量内容用作变量名。这在你可以做的 php 中是可行的

$varname = 'x';

$$varname = "something";

print $x; //Prints "something"

但不是在 javascript 中。只需使用多维数组或散列即可。

关于php - 作为 JavaScript 数组名称的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10375723/

相关文章:

javascript - 正则表达式 JQUERY 验证

javascript - 尝试修改功能性 'pick' 函数,以便它返回对修改后的对象的选择,以将 redux 不可变映射状态传递给 props

jquery - < IE 9 的背景大小和位置替代方案

javascript - 从 html 到 Javascript 获取 ID 数组

jquery - 当我向下滚动我的网站时,如何使具有固定定位的对象从浏览器窗口的顶部移动到底部?

jquery - 使用 html 类而不是 del 元素来覆盖文本

php - Composer 隐藏 token

php - 在 MySQL 中构建用户数据

java - 有兴趣学习Hadoop框架

php - zend框架如何实现多语言?