Firefox 3.6.18 и IE Javascript вставляют строки в таблицу - PullRequest
1 голос
/ 23 июня 2011

Я создал скрипт, который вставляет несколько строк в таблицу. Сценарий выглядит так:

 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);
        }
    }

Скрипты отлично работают в Firefox 4.0+ (поэтому я не вижу проблемы), но у одного из моих коллег есть Firefox 3.6.18, и кажется, что тэги td удалены. И я получаю что-то вроде <tr>data data data data...</tr> вместо <tr></td>data</td><td>data</td>...</tr>.

Есть мысли, почему это происходит?

Также в IE я получаю сообщение об ошибке, и ничего не отображается (ошибка «объект не отображает это свойство или метод», я не могу точно указать строку, потому что IE отстой при сообщении ...)

Ответы [ 2 ]

1 голос
/ 23 июня 2011

Вопрос уже обсуждался: Вставить строки в таблицу

Проверить артикул:

http://www.ericvasilik.com/2006/07/code-karma.html

1 голос
/ 23 июня 2011

Можете ли вы попробовать это?

Вы не должны добавлять Child в таблицу, а в tBody, но это добавится к самой таблице, если я правильно понял весь синтаксис

  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);
      }  
    }
  }
...