2012-09-06 161 views
0

我想2天將這2個代碼合併到1,因爲一個在IE中完美工作,另一個完美工作在FF和Chrome。那麼我怎樣才能將它們合併爲1呢? 這是在IE中使用的代碼,而不是在FF:Javascript代碼不能正常工作

....

 if (i < rowCount - 1) { 
      detRez += dataTable.rows[i].cells[1].firstChild.value + "^"; 
      detRez += dataTable.rows[i].cells[2].firstChild.value + "%"; 
      //This working with FF 
      //detRez += dataTable.rows[i].cells[1].childNodes[1].value + "^"; 
      //detRez += dataTable.rows[i].cells[2].childNodes[1].value + "%"; 
     } 
     else { 
      detRez += dataTable.rows[i].cells[1].firstChild.value + "^"; 
      detRez += dataTable.rows[i].cells[2].firstChild.value; 
       //This working with FF 
       //detRez += dataTable.rows[i].cells[1].childNodes[1].value + "^"; 
       //detRez += dataTable.rows[i].cells[2].childNodes[1].value; 

      } 
      } 
..... 

,在FF的作品,但在一個不是在IE具有//在該行

我在FF中沒有得到任何錯誤(如果我測試IE代碼),只有字符串沒有正確構建,看起來像這樣:undefined^undefined%undefined^undefined而不是MyText^.....

任何想法如何將這兩個代碼合併到IE和FF中?提前致謝。

回答

2

Firefox和Internet Explorer以不同方式處理子節點。 Firefox使用DOM兼容模式並計算標籤之間的差距等等。 Internet Explorer只計算其中的一部分(因此兩者之間存在不一致)。

您應該考慮使用getElementsByTagName()而不是childNodes[]

+0

謝謝。有效! –

+0

沒問題。不久之前,這個問題也引起了我的注意。 – Ren