javascript - 从二维数组中获取img src和img维度并显示在body中

标签 javascript arrays image function dimensions

我正在尝试获取图像源并从二维数组中设置尺寸

var ImgArray=new Array(2)

ImgArray[0][0] = ["http://imgsrc.jpg"]
ImgArray[0][1] = [width="200",height="200"]
ImgArray[1][0] = ["http://imgsrc.jpg"]
ImgArray[1][1] = [width="200",height="200"]

,将源尺寸更改为新尺寸(200x200)

var i=0;
var j=0;

function NextImg(){
    ++i;
    ++j;
    document.getElementById('imageset').width = ImgArray[i][j]
    document.getElementById('imageset').height = ImgArray[i][j]
    document.getElementById('imageset').src = ImgArray[i][j]
}

并在此处显示结果

<img id="imageset" /> 
<button type="button" onclick="NextImg()">Next image</button>

最佳答案

您需要打开开发工具(在大多数浏览器中按 F12)并查看出现的错误。一旦你这样做了,你就会很明显地发现你的大部分代码甚至都不是有效的 JavaScript,而且许多其他部分也存在很大的问题。

例如,您开始为 ImgArray[0][0] 赋值...但甚至还没有 ImgArray[0] 来赋值[0] 到。你可能有一个长度为 2 的数组...但是 2 又是什么?这些值仍然是未定义。在开始将它们用作数组之前,您需要将它们本身设置为新数组。您的开发工具会立即告诉您这是一个问题。

并且您分配的值在许多情况下不是有效的 JS,例如 [width="200",height="200"]。这根本就不是 JS。

如果您尝试创建具有宽度/高度属性的对象,则为 {width:"200", height:"200"},如果您尝试创建数组(您将来的用法表明)那么它将是 ["200", "200"],因为数组元素没有这种方式的属性名称,它们从 0 开始索引。所以第一个第一个是 [0],第二个是 [1]

最重要的是,您的 j 变量没有任何用途,也没有增加它的意义。不需要其他递增变量。

并且您也在函数开始时递增,因此您的第一个图像将是数组的第二个 ([1]) 索引。尝试从 -1 开始 i ,以便 0 成为递增后的第一个结果。

工作中的 JSFiddle 在这里:https://jsfiddle.net/c0psj611/

更好的方法(使用对象来存储关联数据)在这里:https://jsfiddle.net/2s5x7nL5/

关于javascript - 从二维数组中获取img src和img维度并显示在body中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37121825/

相关文章:

javascript - 在这种情况下使用间隔可以吗?

java - 如何拆分字符串并将其存储在数组中

javascript - 更改 src 后,图像在 Chrome 中不会调整大小

c - 初始化结构数组的全局数组

c - 如何在 ANSI C 程序中返回字符串数组?

python - 将PNG文件导入Numpy?

图像处理以去除线条

javascript - D3 力布局中的动态链接距离

for 循环中的 javascript addEventListener 使用事件的最后一个变量

javascript - 模拟 angularjs http 请求