我需要在页面上放置5个图像,如缩略图,点击后显示灯箱。我需要把我创建的元素的ID放到像参数这样的函数中。但我不能得到身份证。我在这里寻找这个问题并与谷歌但没有工作:(它是项目到学校,我只能使用HTML,CSS和JavaScript,我不能使用jquery。谢谢。这是我的代码:
function onloadpg() {
for (var i = 0; i<5; i++) {
x[i] = document.createElement("IMG");
x[i].setAttribute("src", "images/" + (i+1) + ".jpg");
x[i].setAttribute("width", "250");
x[i].setAttribute("height", "200");
x[i].setAttribute("alt", fotky.title);
x[i].setAttribute("title", fotky.title);
x[i].setAttribute("id", i+1);
x.setAttribute("onclick", zobraz(x.getAttribute('id')), nacitaj(x.getAttribute('id')));
}
答案 0 :(得分:0)
问题: 您可以在浏览器控制台中看到消息:
未捕获的TypeError:x.setAttribute不是函数
解决方案:
您需要使用x[i]
而不是x
来按索引定位当前元素:
x.setAttribute("onclick", zobraz(x.getAttribute('id')), nacitaj(x.getAttribute('id')));
^________________________________^______________________________^
应该是:
x[i].setAttribute("onclick", "zobraz("+x[i].getAttribute('id')+")", "nacitaj("+x[i].getAttribute('id')+")");
^^^^_________________________^_______^^^^^^___________________^^^^___________^^^^^^___________________^^^^^
另请注意,您需要添加引号"
并连接变量。
注意:您应该将变量x
定义为数组:
var x = [];
希望这有帮助。
function onloadpg() {
var x = [];
for (var i = 0; i < 5; i++) {
x[i] = document.createElement("IMG");
x[i].setAttribute("src", "images/" + (i + 1) + ".jpg");
x[i].setAttribute("width", "250");
x[i].setAttribute("height", "200");
x[i].setAttribute("alt", "fotky.title");
x[i].setAttribute("title", "fotky.title");
x[i].setAttribute("id", i + 1);
x[i].setAttribute("onclick", "zobraz("+x[i].getAttribute('id')+")", "nacitaj("+x[i].getAttribute('id')+")");
document.body.innerHTML += x[i].outerHTML+"<br>";
}
}
function zobraz(id) {
alert('zobraz : '+id);
}
function nacitaj(id) {
alert("nacitaj : "+id);
}
onloadpg();
答案 1 :(得分:-1)
ThePackage for VB