通过id动态访问对象数据

Access data of objects through IDs dynamically

本文关键字:对象 数据 访问 动态 id 通过      更新时间:2023-09-26

我有一个如下所示的数组,它表示HTML主体中对象的id:

var p=new Array ("p1" ,"p2" ,"p3" ,"p4" ,"p5","p6","p7","p8","p9","p10","p11" ,"p12","p13", "p14","p15","p16","p17","p18","p19","p20");

我需要遍历这些对象并检索它们的数据,我正在以以下方式这样做,这是不工作的:

for(var i=0; i<20; i++)
        {
           var price=p[i].innerHTML;
           if(price.length != 7)
           {
             alert("yes");
           }
        }

做我想做的事情的正确方法是什么?

您需要使用getElementById()访问节点

for(var i=0; i<20; i++)
{
   var price = document.getElementByid(p[i]).innerHTML;
   if(price.length != 7)
   {
     alert("yes");
   }
}

为了更谨慎一点,您可以首先验证节点是否存在:

for(var i=0; i<20; i++)
{
   var elem = document.getElementByid(p[i]);
   // Only attempt to do anything if the node exists...
   if (elem)
   {
     var price = elem.innerHTML;
     if(price.length != 7)
     {
       alert("yes");
     }
  }
}
var p=new Array ("p1" ,"p2" ,"p3" ,"p4" ,"p5","p6","p7","p8","p9","p10","p11" ,"p12","p13", "p14","p15","p16","p17","p18","p19","p20");
for (var i = 0, var element = document.getElementById(p[i]); i < p.length; i ++) {
  var price = "";
  if (element) price = element.innerHTML;
  if (price.length != 7) alert("yes");
}