Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Javascript在表中显示图像_Javascript_Html_Arrays_Image_Html Table - Fatal编程技术网

从Javascript在表中显示图像

从Javascript在表中显示图像,javascript,html,arrays,image,html-table,Javascript,Html,Arrays,Image,Html Table,我是一名学生,我在这里尝试使用存储在Javascript中的数组从Javascript构建一个表。这张桌子工作得很好,但我似乎无法将图像整合到桌子中。无论我尝试什么,imgaray仍然没有定义。你们谁能给我指出正确的工作方向吗 var-pet=[{ 种类:'果蝠', 名称:“蝙蝠”, 颜色:“灰色”, 尺寸:'小', 食物:“苹果”, 肢体:“翅膀”, img:“0” }, { 品种:'山羊', 名字:“混蛋”, 颜色:“灰白色”, 大小:“山羊大小”, 食物:“衣服”, 肢体:“蹄子”, i

我是一名学生,我在这里尝试使用存储在Javascript中的数组从Javascript构建一个表。这张桌子工作得很好,但我似乎无法将图像整合到桌子中。无论我尝试什么,imgaray仍然没有定义。你们谁能给我指出正确的工作方向吗

var-pet=[{
种类:'果蝠',
名称:“蝙蝠”,
颜色:“灰色”,
尺寸:'小',
食物:“苹果”,
肢体:“翅膀”,
img:“0”
}, {
品种:'山羊',
名字:“混蛋”,
颜色:“灰白色”,
大小:“山羊大小”,
食物:“衣服”,
肢体:“蹄子”,
img:“1”
}, {
种类:"蝴蝶",,
姓名:'flatterby',
颜色:“彩虹”,
尺寸:'娇小',
食物:“花蜜”,
肢体:“翅膀”,
img:“2”
}, {
种类:'秃鹰',
名称:“Buzz”,
颜色:“脱毛的黑色和白色”,
大小:'大',
食物:“腐肉”,
肢体:“翅膀”,
img:“3”
}, {
物种:'精灵',
姓名:“佩蒂”,
颜色:“蓝色”,
尺寸:“微小”,
食物:“灵魂”,
肢体:“翅膀”,
img:“4”
}, {
种类:'乌龟',
名称:'坦克',
颜色:“绿色”,
大小:“平滑背面”,
食物:“生菜”,
肢体:“腿”,
img:“5”
}];
//用于保存pet阵列图像的阵列
imgaray=[];
imgaray[1]=新图像();
imgaray[1].src=“resources/bat.gif”//图像的来源
imgaray[2]=新图像();
imgaray[2].src=“resources/goatVec01.png”;
imgaray[3]=新图像();
imgaray[3].src=“resources/butterfly.gif”;
imgaray[4]=新图像();
imgArray[4].src=“resources/buzzard01.png”;
imgaray[5]=新图像();
imgaray[5].src=“resources/breeze01.png”;
imgaray[6]=新图像();
imgaray[6].src=“resources/turtle.gif”;
var len=imgArray.length;
函数display(){//添加了for循环
var i;
对于(i=0;i

宠物
工作


您正在尝试访问未定义的数组位置。 您应该使用定义的索引访问图像数组:

var pic = document.write(imgArray[1].outerHTML);
我建议在运行for循环时,将需要的索引作为参数传递给display函数。您可以传递for循环计数器i,但由于i=0,您需要重新索引图像数组

function display(imgIdx) {
  var pic = document.write(imgArray[imgIdx].outerHTML);
}
我仔细查看了你的代码,发现了一大堆问题,我继续解决了,一切都很好。我不会给你完整的答案,否则你学不到多少。我会简单地告诉你哪里有错误

首先此if语句错误:

 if (attrName = "img")
Second您的pets变量是一个全局变量,因此无需将其作为参数传递给每个函数。避免使用全局变量,因为您很容易意外地覆盖它们

 `function buildTable(pet) //remove parameter
 function makeTr(pet, attrName) //remove pet parameter` 
生成一个名为getPets()的函数,该函数返回pet并从makeTr()函数内部调用它,因为它是唯一使用它的函数,而不是全局函数

Third不要使用document.write,因为它会覆盖整个页面,不会将html分配给变量或任何您认为正在执行的操作


n您还必须解决其他一些问题和改进,这些问题太多了,无法放在这里。只要遵循我最初的建议和所有这些新建议,做更多的调试和更艰苦的工作,你就会得到它。在buildTable函数中,最后一件事是永远不会调用makeTr(“img”);所以没有图像会出现。他们之前出现的唯一原因是因为我的第一条评论中所说的话,这是一个学习者的错误,所以我理解。

恐怕还没有定义。我也试着在for循环中运行它,但没有什么不同。不幸的是,我需要运行多个映像,这就是为什么我使用imgaray[I]。imgaray索引不是从零开始的,而是在索引1定义了第一个映像。您正在尝试访问循环计数设置为零的数组,但在零处未定义任何内容。可以从i=1开始循环,也可以从0而不是1开始重新索引图像数组<代码>imgArray=[];imgaray[0]=新图像();imgaray[0].src=“resources/bat.gif”//图像源…
我可以看到它可以工作,但我的阵列中有多个图像。除了一个变量,我还能一次访问一个吗?啊,谢谢。我已经设法让它现在至少返回一些文本。我已经用多个图像和一个零基图像数组更新了我的JSFIDLE,这样你就可以明白我的意思了