变量作为 JavaScript 数组名称
Variables as JavaScript Array Names
>问题:尝试使用"动态"变量访问 JSON/JavaScript 数组.
# 示例 #
而不是。。。array1[ ] 或 array2[ ] 甚至 array9000[ ]
像...var my_array = 'array' + 'some generated number' ;
然后只是...my_array[ ] 或my_array[一些数字]
但这不起作用... (现在在底部解决(
我有一些PHP正在读取一些目录以及创建JSON数组的内容。JSON 数组按顺序命名,它们存储映像目录...
JSON 数组名称示例:图像 0、图像 1、图像 2 等...
<?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中。只需使用多维数组或哈希即可执行此操作。
快速回答:您的数值变量应该可以在window
对象中访问,像数组 (window['images1']
( 一样访问,因此只需更改
{ src: ARRAY[1]}
自
{ src: window[ARRAY][1] }
应该让它工作。
正确答案:使用数组/对象,很简单:
<script>
echo '<script type="text/javascript">';
echo 'images = [];';
$folderCHILD = opendir($folder);
while($image = readdir($folderCHILD)) {
if($image !== '.' && $image !== '..' && $folder !=='resource'){
$images[]=$folder."/".$image;
}
}
closedir($folderCHILD);
echo 'images.push('.json_encode($images).');';
echo '</script>';
然后:
{ src: images[indexCUR][1] }
相关文章:
- 如何遍历包含对象的数组-javascript
- 保存数组javascript
- 查找数组javascript中包含的元素类型
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- 从多维数组javascript中提取特定值
- 如何在数组javascript中选择伪随机值
- 拆分字符串数组(JavaScript)后未定义
- 从数组JavaScript中删除并返回最后n个项的最快方法
- 使用条件for循环更新数组-Javascript
- 从数组javascript创建新对象
- 用数组(javascript)中的值替换regex捕获
- 从数组[Javascript]的总长度中减去一个干净的数字
- 将一个字符串数组解析为一个新的数组javascript
- 如何将对象转换为对象数组javascript
- 赢得't循环数组javascript
- 从不同的数组 JavaScript 中获取值
- 多维数组 JAVASCRIPT 出了点问题
- 可以't分配给一个对象数组javascript
- 比较数组JavaScript中的对象
- 如何完成缺少(连续)元素的数组|Javascript