1

Mozilla と IE の間で fromDate の結果が異なるようです。これを行うためのより信頼性の高いクロスブラウザーの方法はありますか? [編集] 実際には異なる列の値を取得しています! [/編集]

<tr id='id3332201010241'  />
 <td>20101024</td>
 <td>20101025</td>
 <td>1415</td>
 <td>1445</td>
 <td>INVDROP</td>  
 <td>H4T1A3</td> 
 <td><a href='#' onclick='selectEditActivity("id3332201010241");' >Click Here</a></td>
</tr>

function selectEditActivity(pass_id){ 
 row = document.getElementById(pass_id);    
 var seq = document.getElementById(pass_id).getAttribute("seq");
 var from_date   = row.childNodes[1].innerHTML; 
 alert(from_date);
 var to_date   = row.childNodes[3].innerHTML;  
}
4

2 に答える 2

3

<tr>自己終了タグを間違って作成しました

<tr id='id3332201010241' />

する必要があります

<tr id='id3332201010241'>

もう 1 つの問題はchildNodes、テキスト ノードが含まれるため、期待どおりに動作しない可能性があることです。<td>行の要素を取得したい場合は、次を使用する必要があります。

var row       = document.getElementById(pass_id);  
var columns   = row.getElementsByTagName("td"); 
var from_date = columns[1].innerHTML; 
var to_date   = columns[3].innerHTML; 

childNodes nodeList は、(空の) テキスト ノードとコメント ノードを含む、要素のすべての子ノードで構成されます。 @quirksmode

于 2010-10-24T18:29:03.537 に答える
2

さまざまなブラウザーが空白を処理する方法の違いの結果が表示されています。代わりに (より一般的なケースでは) 、次のように、特定のタイプの子要素 ​​(この場合)を確実getElementsByTagName()に取得するために使用できます。<td>

function selectEditActivity(pass_id){ 
  var row = document.getElementById(pass_id),
      cells = row.getElementsByTagName("td"),
      seq = row.getAttribute("seq"),
      from_date = cells[0].innerHTML,
      to_date = cells[1].innerHTML;  
  alert("From: " + from_date + "\nTo: " + to_date);
}

ここでテストできます。@ patrickが指摘しているように、ここでは必要ありません。次のよう.cellsに の を使用するだけです。<tr>

function selectEditActivity(pass_id){ 
  var row = document.getElementById(pass_id),
      seq = row.getAttribute("seq"),
      from_date = row.cells[0].innerHTML,
      to_date = row.cells[1].innerHTML;  
  alert("From: " + from_date + "\nTo: " + to_date);
}

ここでテストできます

于 2010-10-24T18:25:07.763 に答える