2012-10-14 43 views
0

我试图从按行排序的列表中获取每个3名称的第一个日期。 该数组是动态的。没有阵列,它工作正常...js匹配与数组排序

但从这里我不能得到它的工作。有什么办法让数组进入比赛吗?

var array=new Array(); 
array[1]='name1'; 
array[2]='name2'; 
array[3]='name3'; 

for (var k = 1; k <= array.length; k++) { 
    tow = document.getElementById('cal_table'); 
    zap = tow.getElementsByTagName('tr'); 

    for (var i=1; i<=zap.length; i++){ 
     opt0 = zap[i].innerHTML.match(/<td>array[k]<\/td>|<td>.*2012<\/td>/img); 
     if(opt0.length==2){ 
      alert(opt0); 
      break 
     } 
    } 
} 
+1

'array [k]'意味着是一个文字字符串,还是从索引为'k'的数组返回的值?另外,你能否展示你的(相关/ [SSCCE](http://sscce.org/))HTML结构,并且理想情况下是[JS小提琴](http://jsfiddle.net/)或类似的演示会很有用。 –

+0

为什么你在索引'1'而不是'0'开始你的数组? – jfriend00

+1

小贴士:将'tow'和'zap'移到循环外部,它会使代码更快 –

回答

2

您必须使用RegExp的构造函数,即new RegExp("<td>" + array[k] + "|<td>.*2012<\/td>", "img")