2012-10-14 53 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")