从二维数组中获取 img src 和 img 维度并显示在 body 中
Get img src and img dimensions from two dimensional array and display in body
我正在尝试从二维数组中获取图像源并设置尺寸
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 是什么?这些值仍然是 undefined
。在开始将它们用作数组之前,您需要将它们本身设置为新数组。您的开发工具会立即告诉您这是个问题。
并且您分配的值在许多情况下都不是有效的 JS,例如 [width="200",height="200"]
。那根本就不是JS。
如果您尝试制作一个具有 width/height 属性的对象,它将是 {width:"200", height:"200"}
,如果您尝试制作一个数组(您未来的用法建议),那么它将是["200", "200"]
,因为 Array 元素没有那样的 属性 名称,它们从 0 开始索引。所以第一个就是 [0]
,第二个就是 [1]
.
最重要的是,您的 j
变量或递增它没有任何意义。不需要其他递增变量。
并且您也在函数的开头递增,因此您的第一张图像将是数组的第二个 ([1]
) 索引。尝试从 -1 开始 i
,以便 0 成为递增后的第一个结果。
一个可用的 JSFiddle 在这里:https://jsfiddle.net/c0psj611/
这里有一个更好的方法(使用对象存储关联数据):https://jsfiddle.net/2s5x7nL5/
您正在递增 i 和 j,因此您只能访问:
ImgArray[0][0] and ImgArray[1][1]
此外,您没有获得此语句中的宽度和高度
document.getElementById('imageset').width = ImgArray[i][j]
document.getElementById('imageset').height = ImgArray[i][j]
鉴于此你应该做类似的事情
var ImgArray = [["http://imgsrc.jpg", 200, 200],["http://imgsrc.jpg", 200, 200]];
那么你的函数将是这样的:
var i=0;
function NextImg(){
++i; //or i++;
document.getElementById('imageset').width = ImgArray[i][0];
document.getElementById('imageset').height = ImgArray[i][1];
document.getElementById('imageset').src = ImgArray[i][2];
}
您可以将显示设置为:
<img id="imageset" />
<button type="button" onclick="NextImg()">Next image</button>
我正在尝试从二维数组中获取图像源并设置尺寸
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 是什么?这些值仍然是 undefined
。在开始将它们用作数组之前,您需要将它们本身设置为新数组。您的开发工具会立即告诉您这是个问题。
并且您分配的值在许多情况下都不是有效的 JS,例如 [width="200",height="200"]
。那根本就不是JS。
如果您尝试制作一个具有 width/height 属性的对象,它将是 {width:"200", height:"200"}
,如果您尝试制作一个数组(您未来的用法建议),那么它将是["200", "200"]
,因为 Array 元素没有那样的 属性 名称,它们从 0 开始索引。所以第一个就是 [0]
,第二个就是 [1]
.
最重要的是,您的 j
变量或递增它没有任何意义。不需要其他递增变量。
并且您也在函数的开头递增,因此您的第一张图像将是数组的第二个 ([1]
) 索引。尝试从 -1 开始 i
,以便 0 成为递增后的第一个结果。
一个可用的 JSFiddle 在这里:https://jsfiddle.net/c0psj611/
这里有一个更好的方法(使用对象存储关联数据):https://jsfiddle.net/2s5x7nL5/
您正在递增 i 和 j,因此您只能访问:
ImgArray[0][0] and ImgArray[1][1]
此外,您没有获得此语句中的宽度和高度
document.getElementById('imageset').width = ImgArray[i][j]
document.getElementById('imageset').height = ImgArray[i][j]
鉴于此你应该做类似的事情
var ImgArray = [["http://imgsrc.jpg", 200, 200],["http://imgsrc.jpg", 200, 200]];
那么你的函数将是这样的:
var i=0;
function NextImg(){
++i; //or i++;
document.getElementById('imageset').width = ImgArray[i][0];
document.getElementById('imageset').height = ImgArray[i][1];
document.getElementById('imageset').src = ImgArray[i][2];
}
您可以将显示设置为:
<img id="imageset" />
<button type="button" onclick="NextImg()">Next image</button>