2011-06-23 1 views
1

テーブルに行を挿入するスクリプトを作成しました。スクリプトは次のようになります。Firefox 3.6.18とIE Javascriptがテーブルに行を挿入する

for (j = 0; j < <?php echo $i; ?>; j++) 
    { 
     if ((utilizator[j]['nume'].toLowerCase().indexOf(nume.toLowerCase()) != -1) && (utilizator[j]['locatie'].toLowerCase().indexOf(locatie.toLowerCase()) != -1) && (utilizator[j]['varsta'].toLowerCase().indexOf(varsta.toLowerCase()) != -1) && (utilizator[j]['email'].toLowerCase().indexOf(email.toLowerCase()) != -1) && (utilizator[j]['telefon'].toLowerCase().indexOf(telefon.toLowerCase()) != -1)) 
     { 
      var insertString = '<td>'+utilizator[j]['nume']+'</td>'; 
      insertString += '<td>'+utilizator[j]['locatie']+'</td>'; 
      insertString += '<td>'+utilizator[j]['varsta']+'</td>'; 
      insertString += '<td>'+utilizator[j]['email']+'</td>'; 
      insertString += '<td>'+utilizator[j]['telefon']+'</td>'; 
      insertString += '<td>'+utilizator[j]['punctaj']+'</td>'; 
      if (utilizator[j]['suspendat'] != 1) 
      { 
       insertString += '<td id="suspendareButon'+utilizator[j]['id']+'"><input type="button" value="Suspenda" onclick="suspendare(1, '+utilizator[j]['id']+')" /></td>'; 
      } 
      else 
      { 
       insertString += '<td id="suspendareButon'+utilizator[j]['id']+'"><input type="button" value="Activeaza" onclick="suspendare(0, '+utilizator[j]['id']+')" /></td>'; 
      } 
      var trTag = document.createElement("tr"); 
      trTag.innerHTML = insertString; 
      document.getElementById("utilizatoriId").appendChild(trTag); 
     } 
    } 

スクリプトは4.0以降、Firefoxで正常に動作(私は問題を見ていない)が、私の同僚の1は、Firefox 3.6.18持っており、それが取り除かれるのtdタグのように思えます。そして、<tr></td>data</td><td>data</td>...</tr>の代わりに<tr>data data data data...</tr>のようなものが得られます。

これはなぜ起こっているのですか? IEでも

私は

+0

DOMを一貫して使用しないのはなぜですか? – mplungjan

+0

ええと... ffの部分を修正しました。 IEはまだ死ぬ。 – zozo

答えて

1
(エラーがIEの報告で吸うので、私は正確にラインを示すことができない、「オブジェクトはこのプロパティまたはメソッドを表示しない」です...)エラーを取得し、何も表示されません

これを試すことができますか?

あなたがテーブルではなく、TBODYするには、appendChildは想定されていませんが、これは私が

var util, trTag, tdTag, input, suspend, max = <?php echo $i; ?>; 
    for (var j = 0; j < max; j++) { 
    util = utilizator[j]; 
    if ((util['nume'].toLowerCase().indexOf(nume.toLowerCase()) != -1) && 
     (util['locatie'].toLowerCase().indexOf(locatie.toLowerCase()) != -1) && 
     (util['varsta'].toLowerCase().indexOf(varsta.toLowerCase()) != -1) && 
     (util['email'].toLowerCase().indexOf(email.toLowerCase()) != -1) && 
     (util['telefon'].toLowerCase().indexOf(telefon.toLowerCase()) != -1)) { 
     trTag = document.getElementById("utilizatoriId").insertRow(-1); 
     tdTag = trTag.insertCell(-1); 
     tdTag.appendChild(document.createtextNode(util['nume'])); 
     tdTag = trTag.insertCell(-1); 
     tdTag.appendChild(document.createtextNode(util['locatie'])); 
     tdTag = trTag.insertCell(-1); 
     tdTag.appendChild(document.createtextNode(util['varsta'])); 
     tdTag = trTag.insertCell(-1); 
     tdTag.appendChild(document.createtextNode(util['email'])); 
     tdTag = trTag.insertCell(-1); 
     tdTag.appendChild(document.createtextNode(util['telefon'])); 
     tdTag = trTag.insertCell(-1); 
     tdTag.appendChild(document.createtextNode(util['punctaj'])); 
     input = document.createElement("input"); 
     suspend = (util['suspendat'] != 1); 
     input.type="button"; 
     input.id = "suspendareButon'+util['id']; 
     input.value = (suspend)?"Suspenda":"Activeaza"; 
     input.onclick=function() { 
     var suspend = this.value==="Suspenda"?1:0; 
     var id = this.id.replace("suspendareButon",""); 
     suspendare(suspend,id); 
     } 
    } 
    } 
+0

私は2時間前に私のオフィスを去ったが、私は朝にそれを試してみて、それが期待どおりに機能するかどうかを見てみる。一つの小さな質問...なぜ私はテーブルに子供を追加できないのですか? (私はもちろん自分自身についていくつかの研究をしますが、あなたの投稿を読んでいる間に私はなぜ疑問に思っています)。 – zozo

+0

いくつかのブラウザでは、1つでもない場合は、静かに挿入するtBodyに追加する必要があります。 – mplungjan

+0

はい、しかしutilizatoriIdはテーブルではありません(私はそれを言い忘れたと思います)。私は特にブラウザの混乱を避けるために使用しました...テーブルIDは2つのtBodyを内部に持つ "utilizatoriTableId"です。そのうちの1つはutilizatoriIdです。 – zozo

関連する問題