在JavaScript中使用getElementsByName,元素数量在定时循环中不断增加。为什么?

时间:2016-06-27 19:32:29

标签: javascript

此脚本正在更新网页上包含的图像,而无需重新加载页面。那部分有效。

没有的部分是脚本似乎存储var obj的先前值并保持累积并附加时间,所以在几次传递之后,我最终得到 self.Pvbox = QtGui.QVBoxLayout() self.syncButton=QtGui.QPushButton('Sync') self.syncButton.setMaximumWidth(100) self.Pvbox.addWidget(self.syncButton) PbuttonWdg = QtGui.QWidget() Pbuttonlayout = QtGui.QVBoxLayout() self.nbuttons=[] c=0 for n in main.Pnames: self.nbuttons.append(QtGui.QPushButton(str(n))) self.nbuttons[-1].setMaximumWidth(80) Pbuttonlayout.addWidget(self.nbuttons[-1]) c+=1 PbuttonWdg.setLayout(Pbuttonlayout) scroll=QtGui.QScrollArea() scroll.setMaximumWidth(110) scroll.setMinimumWidth(110) scroll.setMinimumHeight(550) scroll.setMaximumHeight(800) scroll.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded) scroll.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) scroll.setWidgetResizable(False) scroll.setWidget(PbuttonWdg) self.Pvbox.addWidget(scroll) self.Pvbox.addStretch(1) self.localButton=QtGui.QPushButton('Local') self.localButton.setMaximumWidth(100) self.Pvbox.addWidget(self.localButton) 并且它会继续追加。

因此,如果我的页面有5个图像,则在前5秒后,...png?4314331?5847301?8978123现在将为10,第二个5秒,input.length将返回15,依此类推。

我的问题是为什么?

input.length

1 个答案:

答案 0 :(得分:0)

不知道这是否正确,但这就是我最终解决所有问题的方法。

<script type="text/javascript">

function updateImage() {

   var input = new Array();
   input = document.getElementsByName('imageChart');

   for (var i=0; i < input.length; i++)
   {
     var obj = document.getElementsByName("imageChart").item(i);

     var str = obj.src;

     var strSplit = str.split("?");

     obj.src = strSplit[0] + "?" + Math.random();
   }

   setTimeout(function() {updateImage()},10000);

}
</script>