如何将属性ID获取到函数js的参数

时间:2017-10-31 19:27:12

标签: javascript image attributes element

我需要在页面上放置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')));
    }

2 个答案:

答案 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