动态创建变量名的JavaScript警报
我得到了以下代码:动态创建变量名的JavaScript警报,javascript,Javascript,我得到了以下代码: var image1 = 'aaa.jpg'; var image2 = 'bbb.jpg'; var image3 = 'ccc.jpg'; var image4 = 'ddd.jpg'; // all dynmically created current = 1; // dynamically changing value, in this case between 1 and 4 我现在需要的是提醒alert(image1)但按此方式:警报(图像+当前) 这样可能吗
var image1 = 'aaa.jpg';
var image2 = 'bbb.jpg';
var image3 = 'ccc.jpg';
var image4 = 'ddd.jpg'; // all dynmically created
current = 1; // dynamically changing value, in this case between 1 and 4
我现在需要的是提醒alert(image1)代码>但按此方式:警报(图像+当前)代码>
这样可能吗?我希望我清楚地解释了我需要什么。从我的观点来看,我认为你走的是正确的道路。但是这里有一些要考虑的事情……<
将动态创建的变量置于引号中,使其成为字符串:
var image1='aaa.jpg'代码>
当你在警告框中输入时,也在引号中加上“图像”一词。这样,它也将是一个字符串:
alert(eval('image'+current))代码>
警报框实际上不会显示图像。它将只显示存储在变量中的图像的名称。我想这就是你想要的
祝你好运
我看到你编辑了这个问题,把它作为动态变量加了引号。干得好。我通过一位用户发布并删除其答案的方式解决了这个问题(为什么?)
这样做:
this.image1 = "aaa.jpg";
alert(this["image" + "1"]);
正如注释中所建议的,并基于注释中的PHP代码:创建一个JavaScript数组来存储数据,而不是创建大量变量。例如,您可以这样完成:
创建包含所有图像的字符串
<?php
$images = '';
while($row = mysqli_fetch_assoc($result)) {
$images .= ( $images ? ',' : '' ) . '"' . $row['image'] . '"';
}
?>
输出
var images = [<?php print $images; ?>];
alert (images[0]);
var-images=[];
警报(图像[0]);
很明显,您正在使用一个集合,因此在这种情况下,您应该创建一个数组结构:
<?php
$images = [];
while ($row = mysqli_fetch_assoc($ergebnis)) {
$images[] = $row['image'];
}
?>
<script type="text/javascript">
var images = <?php echo json_encode($images) ?>;
</script>
var图像=;
然后,您可以通过引用每个图像路径,例如,images[0]
1:我做了oO 2:它会提醒“image1”,但不会提醒image1的值3:wth XD这也是一个很好的解决方案Jack,使用PHP创建不容易,但会起作用:DHO您当前如何使用PHP创建变量?看起来有点像。像那样:那也行,所以我接受:)
<?php
$images = [];
while ($row = mysqli_fetch_assoc($ergebnis)) {
$images[] = $row['image'];
}
?>
<script type="text/javascript">
var images = <?php echo json_encode($images) ?>;
</script>