GetElementById('div'+ i)递增

时间:2014-07-21 03:37:39

标签: javascript

我试过通过网站搜索但我无法找到我正在寻找的东西..

我已经创建了一个带增量的div id,我想选择那个div标签,因为我试图通过javascript GetElementById设置宽度,因为如果你使用GetElementsByClass

我正在运行的代码将不起作用

这就是我的工作

var list = document.getElementsByClassName("mycontent");
for (var i = 0; i < list.length; i++) {
list[i].setAttribute("id", "custom-id-" + i);
}
var widthx = document.getElementById('testx').offsetWidth;
document.getElementById('div-2').style.width = widthx + 'px';
document.getElementById('div-3').style.width = widthx + 'px';
document.getElementById('custom-id-'+i).style.width = widthx + 'px';
document.getElementsByClass('mycontent').style.width = widthx + 'px';

这两部作品

document.getElementById('div-2').style.width = widthx + 'px';
document.getElementById('div-3').style.width = widthx + 'px';
然而,这是我需要工作的

document.getElementById('custom-id-'+i).style.width = widthx + 'px';
document.getElementsByClass('mycontent').style.width = widthx + 'px';

任何想法我怎么能让它运行?这是一个jsfiddle

事先知道了谁

3 个答案:

答案 0 :(得分:1)

应该是内循环:

var list = document.getElementsByClassName("mycontent");
for (var i = 0; i < list.length; i++) {
list[i].setAttribute("id", "custom-id-" + i);
list[i].id = 'custom-id-' + i; list[i].style.width = widthx + 'px';
}

答案 1 :(得分:0)

您正在使用i超出范围。

换句话说,您无法在i循环之外引用变量for,因为您无法从那里访问它,因此您需要移动所有内容在循环内部。

此外,getElementsByClass()不是函数。您正在寻找getElementsByClassName()

如果您使用那个作为最后一行,那就可以了。

var list = document.getElementsByClassName("mycontent");
for (var i = 0; i < list.length; i++) {
    list[i].setAttribute("id", "custom-id-" + i);
    var widthx = document.getElementById('testx').offsetWidth;

    document.getElementById('div-2').style.width = widthx + 'px';
    document.getElementById('div-3').style.width = widthx + 'px';
    document.getElementById('custom-id-' + i).style.width = widthx + 'px';
    document.getElementsByClassName('mycontent')[i].style.width = widthx + 'px';
}

Demo

答案 2 :(得分:0)

document.getElementById('custom-id-'+i).style.width = widthx + 'px';

上述声明失败,i的当前值为2,页面中没有div id {。}}。

custom-id-2

以上陈述应为

document.getElementsByClass('mycontent').style.width = widthx + 'px';

然后再次document.getElementsByClassName('mycontent'); 返回document.getElementsByClassName;它没有array属性。

您可以将style的值分配给变量,并将document.getElementsByClassName('mycontent');分配给变量,以执行所需的操作。