2011-10-12 59 views
1

我有一个数组如下所示其代表在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"); 
      } 
     } 

是什么做什么,我试图做正确的方法是什么?提前致谢。

回答

2

您需要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"); 
    } 
    } 
} 
0
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"); 
}